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