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