2002-05-14 Radek Doulik <rodo@ximian.com>
[mono.git] / mono / interpreter / ChangeLog
1 2002-05-14  Radek Doulik  <rodo@ximian.com>
2
3         * interp.c: introduced new --noptr option to suppres pointer
4         address printing. I find this useful for comparing trace outputs
5         while porting to ppc
6
7 Tue May 14 16:37:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
8
9         * interp.c: some finally handling fixes and compilation fixes for
10         changes in the runtime lib.
11
12 2002-04-30  Dick Porter  <dick@ximian.com>
13
14         * interp.c: Tell glib to not abort when g_log() etc print
15         recursively
16
17 Mon Apr 22 16:52:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18
19         * interp.c: handle muslticast delegates. Implement a couple more
20         convert opcodes. Pretend we spend some time jitting...
21
22 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
23
24         * interp.c (ves_exec_method): support internalcall String constructors
25
26 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
27         
28         * interp.c: support for new szarray format.
29
30 Tue Apr 16 20:12:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
31
32         * interp.c: removed profiling code (moved to common library).
33         Implemented inlining for some special methods.
34
35 2002-04-15      Patrik Torstensson <patrik.torstensson@labs2.com>
36
37         * interp.c: Using fullnames when adding icall's (array)
38
39 Wed Apr 10 16:07:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
40
41         * interp.c: quick implementation for opcodes needed by the new parse
42         routines in corlib.
43
44 Tue Apr 9 13:08:26 CEST 2002 Paolo Molaro <lupus@ximian.com>
45
46         * interp.c: make the interp thread-safe wrt the metadata lib.
47
48 Mon Apr 8 17:15:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
49
50         * interp.c: display return value with --trace.
51         Call mono_runtime_init ().
52
53 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
54
55         * interp.c (interp_mono_runtime_invoke): handle more types,
56         removed runtime_exec_main
57
58 Thu Apr 4 11:36:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
59
60         * interp.c: don't try to get an IL opcode for runtime and internal
61         call methods.
62
63 Thu Mar 28 16:54:51 CET 2002 Paolo Molaro <lupus@ximian.com>
64
65         * interp.c: spring warning cleanup.
66
67 Thu Mar 28 12:03:28 CET 2002 Paolo Molaro <lupus@ximian.com>
68
69         * interp.c: check obj address in stfld.
70
71 2002-03-27  Dietmar Maurer  <dietmar@ximian.com>
72
73         * interp.c (ves_exec_method): CASTCLASS: fix for transparent proxy
74
75 Tue Mar 26 20:09:10 CET 2002 Paolo Molaro <lupus@ximian.com>
76
77         * interp.c: set frame->ip before dumping the stack trace.
78
79 Tue Mar 26 19:54:45 CET 2002 Paolo Molaro <lupus@ximian.com>
80
81         * interp.c: remove glib mem vtable code.
82
83 2002-03-26  Dick Porter  <dick@ximian.com>
84
85         * interp.c: Show thread ID's in trace output.
86                 
87         New option "--traceclassinit" to put debug output around
88         runtime_class_init().
89
90         Make sure all options are displayed in usage().
91
92 Tue Mar 26 17:03:14 CET 2002 Paolo Molaro <lupus@ximian.com>
93
94         * interp.c: support fieldrefs when accessing instance fields.
95
96 Mon Mar 25 12:59:52 CET 2002 Paolo Molaro <lupus@ximian.com>
97
98         * interp.c: allow tracing to be done on a per-method basis.
99         Fix interp_mono_runtime_invoke() to deal correcttly with the return
100         value. Disable glib mem vtable setting.
101
102 Thu Mar 21 18:08:37 CET 2002 Paolo Molaro <lupus@ximian.com>
103
104         * interp.c: set stack trace info when throwing an exception.
105
106 Thu Mar 21 17:32:46 CET 2002 Paolo Molaro <lupus@ximian.com>
107
108         * interp.c: intern strings before executing a method (and don't 
109         intern command line arguments anymore). Add sanity checks in alloca
110         use.
111
112 Sat Mar 16 19:15:18 CET 2002 Paolo Molaro <lupus@ximian.com>
113
114         * interp.c: restore frame on return from unmanaged calls.
115         Add support for continuing execution up to x IL insn.
116         Fix exception handling when an exception is raised in the catch
117         handler of the same method that issued the first one.
118
119 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
120
121         * interp.c (ves_runtime_method): set method_info field
122
123 Mon Mar 11 14:48:07 CET 2002 Paolo Molaro <lupus@ximian.com>
124
125         * interp.c: corlib consistency checls moved to libmetadata.
126
127 Mon Mar 11 11:27:27 CET 2002 Paolo Molaro <lupus@ximian.com>
128
129         * interp.c: use the new facilities in debug-helpers to
130         disassemble CIL code and match method names to MonoMethods.
131
132 Thu Mar 7 17:20:59 CET 2002 Paolo Molaro <lupus@ximian.com>
133
134         * interp.c: Boehm-GC enable. Fix some overflow opcodes.
135
136 Tue Mar 5 18:12:40 CET 2002 Paolo Molaro <lupus@ximian.com>
137
138         * interp.c: fix non-debug build and some more opcode work.
139
140 Mon Mar 4 11:21:44 CET 2002 Paolo Molaro <lupus@ximian.com>
141
142         * interp.c: print the address of 'this' in tracing mode.
143
144 Thu Feb 28 19:18:59 CET 2002 Paolo Molaro <lupus@ximian.com>
145
146         * interp.c: add checks for more binary consistency.
147
148 2002-02-27  Dietmar Maurer  <dietmar@ximian.com>
149
150         * interp.c (interp_mono_runtime_invoke): use alloca instead of g_new0
151
152 Tue Feb 26 11:43:34 CET 2002 Paolo Molaro <lupus@ximian.com>
153
154         * interp.c: added profiling for object creation.
155
156 Mon Feb 25 17:37:07 CET 2002 Paolo Molaro <lupus@ximian.com>
157
158         * interp.c: use correct value for guint64 max.
159
160 2002-02-22  Radek Doulik  <rodo@ximian.com>
161
162         * interp.c: s/gulong/guint64 as it differs on ppc
163
164 Wed Feb 20 22:18:40 CET 2002 Paolo Molaro <lupus@ximian.com>
165
166         * interp.c: more complete runtime_invoke () implementation.
167         Fixed castclass/isinst to work correctly with arrays.
168
169 Tue Feb 19 20:21:14 CET 2002 Paolo Molaro <lupus@ximian.com>
170
171         * interp.c: implement the runtime_invoke function.
172
173 Mon Feb 18 15:49:20 CET 2002 Paolo Molaro <lupus@ximian.com>
174
175         * interp.c: fix alignment code. Make sure to init classes
176         in more cases. Command-line arguments are interned.
177
178 2002-02-16  Radek Doulik  <rodo@ximian.com>
179
180         * interp.c (ves_exec_method): test type of sp [-1] instead of sp
181         [0], because sp [-1] is the value going to be shifted, fixed in
182         CEE_SHL, CEE_SHR, CEE_UN opcodes)
183
184 Sat Feb 16 12:00:24 CET 2002 Paolo Molaro <lupus@ximian.com>
185
186         * interp.c: fixed cut&paste error for ldind.r4 and ldind.r8.
187
188 Fri Feb 15 15:07:27 CET 2002 Paolo Molaro <lupus@ximian.com>
189
190         * interp.c: use strrchr instead of rindex. use _isnan and _finite on
191         win32 systems.
192
193 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
194
195         * interp.c (ves_exec_method): replace 
196         'g_assert (sp->type = VAL_VALUETA)' with 
197         'g_assert (sp->type == VAL_VALUETA)' otherwise
198         the assert always passes. FIXME: should the test have been !=?
199
200 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
201
202         * interp.c (stackval_from_data): fix for MONO_TYPE_PTR
203
204 Wed Feb 13 16:17:38 CET 2002 Paolo Molaro <lupus@ximian.com>
205
206         * interp.c: fixed newobj implementation for valuetypes bug found by
207         dietmar. sub.ovf dummy code.
208
209 Tue Feb 12 14:08:47 CET 2002 Paolo Molaro <lupus@ximian.com>
210
211         * hacks.h: check against redefining preprocessor symbol.
212         * interp.c: fix profile info to return more sensible results.
213
214 Mon Feb 11 13:05:29 CET 2002 Paolo Molaro <lupus@ximian.com>
215
216         * interp.c: added "die on exception" command line argument.
217         When we segfault, set the message in the exception to "Segmentation
218         fault" so people can recognise what's going on.
219
220 2002-02-10  Miguel de Icaza  <miguel@ximian.com>
221
222         * interp.c (ves_exec_method): Compare the element_class type token
223         in the class we got as well, instead of the element class vs the
224         toplevel class.
225
226         This fixes the invalid cast exceptions during unboxing
227
228 Fri Feb 8 13:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
229
230         * interp.c: use opcode information from libmetadata.
231
232 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
233
234         * interp.c (ves_exec_method): CEE_UNBOX: use element_class for
235         type check.
236
237 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
238
239         * interp.c (main): impl. __array_Address icall
240
241 Fri Feb 1 16:03:53 CET 2002 Paolo Molaro <lupus@ximian.com>
242
243         * interp.c: exception fixes. Use mono_method_pointer_get ()
244         to easy porting to other archs. Some support for overflow detection.
245
246 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
247
248         * interp.c, jit.c (main): install runtime_exec_main handler
249         (main): bug fix - call TlsAlloc () before we execute code
250
251 2002-01-23  Dick Porter  <dick@ximian.com>
252
253         * interp.c: Added some kludges to cope with CONV_OVF_I2,
254         CONV_OVF_I4 and ADD_OVF so that number formatting works.  Also
255         initialise and cleanup the network support.
256
257 Thu Jan 10 20:59:59 CET 2002 Paolo Molaro <lupus@ximian.com>
258
259         * interp.c, interp.h: add a flag to mono_create_trampoline ()
260         to handle runtime methods.
261
262 Sat Jan 5 15:45:14 CET 2002 Paolo Molaro <lupus@ximian.com>
263
264         * interp.c: allow classname:method name in --debug argument.
265         Fix box opcode for valuetypes. Fix a few opcode to take a 16 bit
266         index instead of 32 (stloc, ldloc, starg, etc.).
267
268 Thu Jan 3 23:19:27 CET 2002 Paolo Molaro <lupus@ximian.com>
269
270         * interp.c: temporary mul.ovf, mul.ovf.un, add.ovf.un implementations
271         to get the compiler going.
272
273 Mon Dec 24 17:23:45 CET 2001 Paolo Molaro <lupus@ximian.com>
274
275         * interp.c: fix ldc.i8.
276
277 Thu Dec 20 20:09:48 CET 2001 Paolo Molaro <lupus@ximian.com>
278
279         * interp.c: fix delegate method invocation to handle both
280         static and instance methods.
281
282 Tue Dec 18 18:48:50 CET 2001 Paolo Molaro <lupus@ximian.com>
283
284         * interp.c: make segv_handler static, handle runtime methods in stack
285         trace.
286
287 Thu Dec 13 20:24:28 CET 2001 Paolo Molaro <lupus@ximian.com>
288
289         * interp.c: correctly handle exceptions generated in C code.
290         Install an handler for SIGSEGV. Bare-bones profiler and hook for the
291         verifier.
292
293 Mon Dec 3 17:15:44 CET 2001 Paolo Molaro <lupus@ximian.com>
294
295         * interp.c: call mono_init() after registering internal calls.
296
297 2001-11-30  Dick Porter  <dick@ximian.com>
298
299         * interp.c: Replace get_named_exception() with
300         mono_exception_from_name()
301
302 Fri Nov 30 12:05:21 CET 2001 Paolo Molaro <lupus@ximian.com>
303
304         * interp.c: calculate locals and args offsets only once
305         per method call. Cache trampoline code as well.
306
307 2001-11-23  Dietmar Maurer  <dietmar@ximian.com>
308
309         * interp.c (ves_exec_method): bug fix for exception5.cs
310
311 Mon Nov 19 11:33:00 CET 2001 Paolo Molaro <lupus@ximian.com>
312
313         * interp.c: start adding support for handling exceptions across
314         managed/unmanaged boundaries. Cleanup Delegate method invocation.
315         Pass the correct target object in Delegate::Invoke and use the correct
316         'this' pointer in ldvirtftn (bugs pointed out by Dietmar).
317
318 Thu Nov 15 17:40:24 CET 2001 Paolo Molaro <lupus@ximian.com>
319
320         * interp.c: handle enums with underlying type different from int32.
321         More checks for C structs <-> C# objects consistency.
322
323 Wed Nov 14 19:23:00 CET 2001 Paolo Molaro <lupus@ximian.com>
324
325         * interp.c: move the stack frame dumping code to a function so it can
326         be called from the debugger. Fix virtual method lookup for interfaces.
327         Throw exceptions instead of aborting in more places.
328         Print also the message in an exception. Updates for field renames in
329         corlib.
330
331 2001-11-09  Dick Porter  <dick@ximian.com>
332
333         * Makefile.am (mint_LDADD): Don't need THREAD_LIBS any more
334
335 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
336
337         * interp.c: Include stdlib to kill warning.
338         (check_corlib): Adjust format encodings to remove warnings.
339
340 Wed Nov 7 15:47:36 CET 2001 Paolo Molaro <lupus@ximian.com>
341
342         * interp.c: updates for changes in array code.
343
344 Fri Nov 2 19:06:54 CET 2001 Paolo Molaro <lupus@ximian.com>
345
346         * interp.c: hanlde field refs. Throw an exception on NULL references.
347         Check consistency of corlib types with the C struct representation.
348
349 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
350
351         * interp.c (ves_exec_method): use relative numbering for runtime
352         type checks (and make it work with interfaces)
353
354 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
355
356         * interp.c: removed newobj()
357
358 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
359
360         * interp.c (get_virtual_method): use the vtable
361         (arch_compile_method): added to compute vtable entry
362
363 Mon Oct 8 16:14:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
364
365         * interp.c: use the accessors provided in object.h to deal with
366         MonoArrays. Updates for API renames in metadata. Throw exception
367         in ldelema if index is out of bounds.
368
369 Mon Oct 8 10:44:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
370
371         * interp.c: fixes for changes in metadata.
372
373 2001-10-04  Dick Porter  <dick@ximian.com>
374
375         * interp.c (ves_runtime_method): init_class() the
376         mono_defaults.delegate_class
377         Include mono-endian.h not endian.h
378
379 Tue Oct 2 18:51:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
380
381         * interp.c: set frame->ip in the leave opcode. Make db_methods static.
382
383 Sun Sep 30 11:57:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
384
385         * interp.c: compiler and ANSI C portability fixes.
386
387 Fri Sep 28 19:37:46 CEST 2001 Paolo Molaro <lupus@ximian.com>
388
389         * interp.c: Implemented ldtoken, conv.ovf.i. Use MonoClass->byval_arg
390         (and remove related kludges). Don't choke on access to arrays of
391         references. Throw an exception when an internalcall or P/Invoke
392         function don't have an implementation. Throw and EngineException
393         for unimplemented opcodes.
394
395 Tue Sep 25 11:12:35 CEST 2001 Paolo Molaro <lupus@ximian.com>
396
397         * interp.c: fixed get_virtual_method () to deal with interface
398         methods better.
399
400 Mon Sep 24 18:50:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
401
402         * interp.c: catch a few more error conditions with exceptions instead of
403         erroring out.
404         Don't use g_print() in stack traces because it doesn't work with
405         some float values.
406         When we call an instance method of a valuetype class, unbox the 'this'
407         argument if it is an object.
408         Use mono_ldstr () to implement the ldstr opcode: it takes care of
409         interning the string if necessary.
410         Implemented new opcodes: ckfinite, cgt.un, clt.un, ldvirtftn, ldarga.
411         Fixes to handle NaNs when comparing doubles.
412         Make sure the loaded assembly has an entry point defined.
413         Fixed portability bugs in neg and not opcodes.
414
415 2001-09-24  Dietmar Maurer  <dietmar@ximian.com>
416
417         * interp.c (ves_exec_method): LDC_I4: 8bit constants are signed
418         (ves_exec_method): bug fix for NOT/NEG
419         (main): fix bug in parameter parsing
420
421 2001-09-23  Dick Porter  <dick@ximian.com>
422
423         * Makefile.am (mint_LDADD): rename PTHREAD_LIBS to THREAD_LIBS
424
425 2001-09-23  Dick Porter  <dick@ximian.com>
426
427         * interp.c (main): Do some thread setup and cleanup around the
428         call to ves_exec()
429
430 2001-09-21  Dick Porter  <dick@ximian.com>
431
432         * Makefile.am (mint_LDADD): Added PTHREAD_LIBS to the link line
433
434 Thu Sep 20 16:32:42 CEST 2001 Paolo Molaro <lupus@ximian.com>
435
436         * interp.c: implemented some more opcodes: calli, rem.un,
437         shr.un, conv.u, cpobj, stobj, conv.r.un, conv.ovf.i1.un,
438         conv.ovf.i2.un, conv.ovf.i4.un, conv.ovf.i8.un, conv.ovf.i.un,
439         conv.ovf.u1.un, conv.ovf.u2.un, conv.ovf.u4.un, conv.ovf.u8.un,
440         conv.ovf.u.un.
441         Fix some 64 bit issues in the array element access code and a small bug.
442         Throw an exception on index out of range instead of asserting.
443         Throw an exception on a NULL array instead of dying.
444         Stomped a memory corruption bug (.cctor methods were freed after
445         executing them, but they are stores in MonoClass now...).
446         Added a simple facility to invoke the debugger when a named
447         function is entered (use the cmdline option --debug method_name).
448         * interp.h: fix 64 bit issue.
449
450 Tue Sep 18 13:21:33 CEST 2001 Paolo Molaro <lupus@ximian.com>
451
452         * interp.c: fix some 64 bit issues. Safer support for delegates.
453
454 2001-09-12  Miguel de Icaza  <miguel@ximian.com>
455
456         * interp.c (ves_exec_method): implement conv.u8 opcode. 
457
458 Mon Sep 10 20:20:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
459
460         * interp.c: endian fixes, comments.
461
462 Fri Sep 7 18:45:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
463
464         * interp.c, interp.h: make ves_exec_method () and stackval_from_data ()
465         non static. Implement a couple of runtime methods needed to
466         use delegates (ves_runtime_method ()).
467         Implemented ldftn opcode.
468
469 Thu Sep 6 15:41:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
470
471         * Makefile.am: link to libmonoarch.
472         * interp.h, interp.c: use mono_create_trampoline ().
473         Pass the command line arguments to Main (String[]) methods.
474
475 2001-08-30  Dietmar Maurer  <dietmar@ximian.com>
476
477         * interp.c (ves_pinvoke_method): removed the libffi dependency
478
479 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
480
481         * interp.c (ves_array_set): moved from icall.c
482         (ves_array_get): moved from icall.c
483
484         * icall.c: moved to metadata/icall.c
485
486 Wed Aug 29 12:46:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
487
488         * interp.c: some small optimizations. Fixes to do signed
489         compares when needed. Change C++ comments into C.
490         Implemented cgt, clt. Added --opcode-count cmdline switch.
491
492 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
493
494         * interp.c (ves_exec_method): better check for value types (get
495         the class to detect if we have a value type), implemented CEE_CONV_U1,
496         CEE_CONV_U2, CEE_CEQ
497         
498
499 Mon Aug 27 21:30:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
500
501         * interp.c: warn and exit when Main () expects the cmdline arguments
502         instead of creashing.
503
504 Mon Aug 27 20:16:37 CEST 2001 Paolo Molaro <lupus@ximian.com>
505
506         * interp.c: merge isinst/castclass handling. Hopefully implement
507         the right semantics for handling callvirt correctly (changes
508         here and there to support it). Integrate bugfix from Dietmar quickly
509         so he needs to handle the cvs conflict:-)
510
511 Mon Aug 27 12:20:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
512
513         * interp.c: fix compilation and updates for changes in metadata/.
514
515 2001-08-26  Miguel de Icaza  <miguel@ximian.com>
516
517         * interp.c (main): Add option handling for the interpreter,
518         support the `--trace' option.
519
520 Sun Aug 26 23:04:46 CEST 2001 Paolo Molaro <lupus@ximian.com>
521
522         * interp.c: get in a dummy virtual method dispatch.
523         Added support for int64, native int and native uint as arguments.
524         Added debug enter/leave for icall and pinvoke methods, too.
525         Implement opcodes conv.i, conv.i8, ldelema.
526
527 Sun Aug 26 11:37:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
528
529         * interp.h, interp.c: load also a MonoClass pointer when we load
530         an address on the stack. Implemented conv.i1, conv.i2, con.i4,
531         conv.u4, conv.r4, conv.r8. Print the arguments in the stack trace
532         and the name of the exception.
533
534 Sat Aug 25 15:56:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
535
536         * interp.c: Implemented some opcodes: starg.s, ldobj, isinst,
537         ldarg, starg, ldloc, ldloca, stloc, initobj, cpblk, sizeof.
538
539 Sat Aug 25 12:57:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
540
541         * interp.c: handle enumerations specially (not as valuetypes).
542
543 Fri Aug 24 19:34:04 CEST 2001 Paolo Molaro <lupus@ximian.com>
544
545         * interp.h, interp.c: add support for valuetypes.
546
547 Fri Aug 24 16:09:20 CEST 2001 Paolo Molaro <lupus@ximian.com>
548
549         * interp.c: updates for merge of MonoParam in MonoType.
550
551 Thu Aug 23 12:04:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
552
553         * interp.c: removed beforefieldinit check, it's a useless flag.
554         Added a couple more test cases to tests/ dir.
555
556 2001-08-22  Miguel de Icaza  <miguel@ximian.com>
557
558         * interp.c (usage): Add version information
559         (ves_pinvoke_method): Typo fix.
560
561 Wed Aug 22 20:37:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
562
563         * interp.c: simplified init_class (). Make sure a class
564         is fully initialized before executing a method in the class.
565         Search for the class constructor only on beforefieldinit classes.
566         Implement a bunch of opcodes: br, brfalse, brtrue, beq, bge,
567         bgt, blt, ble, bne.un, bge.un, bgt.un, ble.un, blt.un, stind.i,
568         ldflda, ldsflda, ldelem.i8, stelem.i8, leave.
569
570 Wed Aug 22 16:34:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
571
572         * interp.c: Updates for changes in metadata/. Better output in debug mode
573         and in the stack trace. Completed rethrow handling
574
575 Tue Aug 21 18:56:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
576
577         * interp.c: new macro INIT_FRAME() to properly
578         initialize a MonoInvocation. Fixed a couple of buglets in exception code:
579         increase stack pointer when pushing the exception for catch blocks,
580         initialize frame->ex_handler to NULL, correctly try all the
581         catch blocks (don't incorrectly fallback on filter handling).
582         Added a couple more checks where we may need to throw an
583         exception. Added more exception creation functions.
584         Changed stackval_from_data() to take the target stackval as
585         argument. Implemented a couple more opcodes.
586         * interp.h: prepare stackval for value type code.
587
588 2001-08-21  Miguel de Icaza  <miguel@ximian.com>
589
590         * Makefile.am (mint_LDADD): Renamed interpreter to mint.
591
592 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
593
594         * interp.c (get_named_exception): use the right constructor.
595
596 Mon Aug 20 18:58:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
597
598         * interp.c: fix buglet with the leave.s opcode.
599
600 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
601
602         * icall.c: changed everything to support the new calling convention
603
604         * hacks.h: added some macros for FreeBSD 
605
606         * interp.c (get_named_exception): use mono_object_new instead of
607         newobj, initialize the stack before we call the constructor.
608
609 Sat Aug 18 12:43:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
610
611         * interp.c, interp.h: added support code to create exceptions.
612         Changed interncal calling convnetion over to MonoInvocation, to support
613         exceptions, walking the stack back and forward and passing the 'this'
614         pointer separately (remove the cludges required before to pass this on the
615         stack). Use alloca heavily for both local vars and a copy of the incoming 
616         arguments. Init local vars to zero.
617         Simplify stackval_from_data() and stackval_to_data() to only take a pointer
618         instead of pointer + offset.
619         Implement a few exceptions-related opcodes and the code to run finally, fault and
620         catch blocks as well as a stack trace if no handler is found.
621         
622 2001-08-16  Alex Graveley  <alex@ximian.com>
623
624         * Makefile.am (mono_int_LDADD): Link with ../../libffi/libffi.a
625         instead of ../../libffi/.libs/libffi.a.
626
627 2001-08-10  Dietmar Maurer  <dietmar@ximian.com>
628
629         * interp.c (ves_exec_method): impl CASTCLASS
630
631         * icall.c: moved the internal call stuff to this file
632
633         * interp.c (ves_exec_method): impl. BOX/UNBOX
634         (ves_icall_System_Array_GetValue): impl.
635         (ves_icall_System_Array_SetValue): impl.
636         added myself to Authors
637
638 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
639
640         * implemented arrays, but you will need a modified version of 
641         Array.cs to get arrays working (will commit soon)
642         
643         * interp.c (ves_icall_array_Set): impl.
644         (ves_icall_array_Get): impl.
645         (ves_icall_array_ctor): impl.
646         (ves_icall_System_Array_GetRank): impl.
647         (ves_icall_System_Array_GetLength): impl.
648         (ves_icall_System_Array_GetLowerBound): impl.
649         (mono_lookup_internal_call): impl.
650
651 2001-08-06  Dietmar Maurer  <dietmar@ximian.com>
652
653         * interp.c (ves_exec_method): impl. NEWARR
654         (ves_exec_method): impl. most LDELEM/STELEM opcodes, LDLEN
655         (newarr): impl.
656         (mono_get_ansi_string): impl.
657         (mono_lookup_internal_call): impl.
658         (ves_exec_method): implemented internal calls
659
660 2001-08-05  Dietmar Maurer  <dietmar@ximian.com>
661
662         * interp.c (ves_pinvoke_method): removed all static vars.
663
664 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
665
666         * interp.c (ves_exec_method): found a way to do unordered
667         compares, implemented CEE_BNE_UN_S, CEE_BGE_UN_S, CEE_BGT_UN_S, 
668         CEE_BLE_UN_S, CEE_BLT_UN_S
669         
670 Wed Aug 1 22:51:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
671
672         * interp.c: handle also MONO_TYPE_CLASS to/from the stack.
673         Change locals to be a memory blob, instead of the structured
674         (but wrong) stackval. Implement bne.un.s opcode. Make the program
675         exit with the error code from Main().
676
677 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
678
679         * interp.c (ves_exec_method): implemented LDSTR
680
681 2001-07-31  Miguel de Icaza  <miguel@ximian.com>
682
683         * interp.c (GET_NATI): Switched from using nati_t to cli/types.h
684         m_i type.  Maybe we should rename the types to be m_i_t instead of
685         m_i alone.
686         
687         Make the code compile after I broke it.
688
689 Tue Jul 31 23:46:33 CEST 2001 Paolo Molaro <lupus@ximian.com>
690
691         * interp.c: fix cleanup.
692         * Makefile.am: don't link with disassembler library.
693
694 2001-07-31  Miguel de Icaza  <miguel@ximian.com>
695
696         (ves_exec_method): Cleanup of the source code.
697
698 Tue Jul 31 20:13:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
699
700         * interp.c: implement stind.*, ldind.*, ldloca.s opcodes.
701         Provide better tracing with DEBUG_INTERP.
702
703 Tue Jul 31 17:52:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
704
705         * interp.c: massive namespace cleanup.
706
707 Mon Jul 30 20:09:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
708
709         * interp.c: update to use mono_method->name.
710
711 Fri Jul 27 20:54:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
712
713         * interp.c: start implementing callvirt. Classes with
714         class constructors are properly initialized when needed.
715         Fix error introduced in version 1.17.
716
717 Fri Jul 27 14:03:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
718
719         * interp.c: implement static field loading and storing.
720
721 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
722
723         * interp.c (ves_pinvoke_method): impl.
724
725 Fri Jul 27 11:49:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
726
727         * interp.c: Removed some debugging printouts. Made stackval_to_data
728         static. Handle also instance methods in CALL opcode. Fix ret to properly
729         deal with void functions. Fixed constructor to leave the object on
730         the stack.
731
732 Thu Jul 26 13:24:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
733
734         * interp.c: ves_exec_method () doesn't take a MonoImage arg
735         anymore. Use the method cache in MonoImage. Updates to
736         mache recent changes in metadata. 
737         Fix newobj code to use new metadata features. Call the class
738         constructor after allocationg the object. Implemented load field
739         and store field opcodes (the support functions need to be finished).
740         
741 Tue Jul 24 16:51:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
742
743         * interp.c, hacks.h: moved a few ugly macros out of the code.
744         Implemented switch opcode.
745
746 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
747
748         * interp.c (newobj): Added function to handle newobj opcode.
749
750 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
751
752         * interp.c (ves_exec_method): Make the interpreter abort with more
753         information than it currently does.
754
755         Enable the slow processor, as it is easier to debug.
756
757 Sun Jul 15 17:50:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
758
759         * Started changelog.
760         * interp.c: use new mono_get_method () function to get the complete
761         info on a method invocation: we support now method invocation with
762         multiple (or zero) simple arguments and with or without a return value.
763         Implement also a couple more opcodes.