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