2001-08-28 Dietmar Maurer <dietmar@ximian.com>
[mono.git] / mono / interpreter / ChangeLog
1 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
2
3         * interp.c (ves_exec_method): better check for value types (get
4         the class to detect if we have a value type), implemented CEE_CONV_U1,
5         CEE_CONV_U2, CEE_CEQ
6         
7
8 Mon Aug 27 21:30:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
9
10         * interp.c: warn and exit when Main () expects the cmdline arguments
11         instead of creashing.
12
13 Mon Aug 27 20:16:37 CEST 2001 Paolo Molaro <lupus@ximian.com>
14
15         * interp.c: merge isinst/castclass handling. Hopefully implement
16         the right semantics for handling callvirt correctly (changes
17         here and there to support it). Integrate bugfix from Dietmar quickly
18         so he needs to handle the cvs conflict:-)
19
20 Mon Aug 27 12:20:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
21
22         * interp.c: fix compilation and updates for changes in metadata/.
23
24 2001-08-26  Miguel de Icaza  <miguel@ximian.com>
25
26         * interp.c (main): Add option handling for the interpreter,
27         support the `--trace' option.
28
29 Sun Aug 26 23:04:46 CEST 2001 Paolo Molaro <lupus@ximian.com>
30
31         * interp.c: get in a dummy virtual method dispatch.
32         Added support for int64, native int and native uint as arguments.
33         Added debug enter/leave for icall and pinvoke methods, too.
34         Implement opcodes conv.i, conv.i8, ldelema.
35
36 Sun Aug 26 11:37:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
37
38         * interp.h, interp.c: load also a MonoClass pointer when we load
39         an address on the stack. Implemented conv.i1, conv.i2, con.i4,
40         conv.u4, conv.r4, conv.r8. Print the arguments in the stack trace
41         and the name of the exception.
42
43 Sat Aug 25 15:56:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
44
45         * interp.c: Implemented some opcodes: starg.s, ldobj, isinst,
46         ldarg, starg, ldloc, ldloca, stloc, initobj, cpblk, sizeof.
47
48 Sat Aug 25 12:57:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
49
50         * interp.c: handle enumerations specially (not as valuetypes).
51
52 Fri Aug 24 19:34:04 CEST 2001 Paolo Molaro <lupus@ximian.com>
53
54         * interp.h, interp.c: add support for valuetypes.
55
56 Fri Aug 24 16:09:20 CEST 2001 Paolo Molaro <lupus@ximian.com>
57
58         * interp.c: updates for merge of MonoParam in MonoType.
59
60 Thu Aug 23 12:04:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
61
62         * interp.c: removed beforefieldinit check, it's a useless flag.
63         Added a couple more test cases to tests/ dir.
64
65 2001-08-22  Miguel de Icaza  <miguel@ximian.com>
66
67         * interp.c (usage): Add version information
68         (ves_pinvoke_method): Typo fix.
69
70 Wed Aug 22 20:37:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
71
72         * interp.c: simplified init_class (). Make sure a class
73         is fully initialized before executing a method in the class.
74         Search for the class constructor only on beforefieldinit classes.
75         Implement a bunch of opcodes: br, brfalse, brtrue, beq, bge,
76         bgt, blt, ble, bne.un, bge.un, bgt.un, ble.un, blt.un, stind.i,
77         ldflda, ldsflda, ldelem.i8, stelem.i8, leave.
78
79 Wed Aug 22 16:34:03 CEST 2001 Paolo Molaro <lupus@ximian.com>
80
81         * interp.c: Updates for changes in metadata/. Better output in debug mode
82         and in the stack trace. Completed rethrow handling
83
84 Tue Aug 21 18:56:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
85
86         * interp.c: new macro INIT_FRAME() to properly
87         initialize a MonoInvocation. Fixed a couple of buglets in exception code:
88         increase stack pointer when pushing the exception for catch blocks,
89         initialize frame->ex_handler to NULL, correctly try all the
90         catch blocks (don't incorrectly fallback on filter handling).
91         Added a couple more checks where we may need to throw an
92         exception. Added more exception creation functions.
93         Changed stackval_from_data() to take the target stackval as
94         argument. Implemented a couple more opcodes.
95         * interp.h: prepare stackval for value type code.
96
97 2001-08-21  Miguel de Icaza  <miguel@ximian.com>
98
99         * Makefile.am (mint_LDADD): Renamed interpreter to mint.
100
101 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
102
103         * interp.c (get_named_exception): use the right constructor.
104
105 Mon Aug 20 18:58:36 CEST 2001 Paolo Molaro <lupus@ximian.com>
106
107         * interp.c: fix buglet with the leave.s opcode.
108
109 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
110
111         * icall.c: changed everything to support the new calling convention
112
113         * hacks.h: added some macros for FreeBSD 
114
115         * interp.c (get_named_exception): use mono_object_new instead of
116         newobj, initialize the stack before we call the constructor.
117
118 Sat Aug 18 12:43:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
119
120         * interp.c, interp.h: added support code to create exceptions.
121         Changed interncal calling convnetion over to MonoInvocation, to support
122         exceptions, walking the stack back and forward and passing the 'this'
123         pointer separately (remove the cludges required before to pass this on the
124         stack). Use alloca heavily for both local vars and a copy of the incoming 
125         arguments. Init local vars to zero.
126         Simplify stackval_from_data() and stackval_to_data() to only take a pointer
127         instead of pointer + offset.
128         Implement a few exceptions-related opcodes and the code to run finally, fault and
129         catch blocks as well as a stack trace if no handler is found.
130         
131 2001-08-16  Alex Graveley  <alex@ximian.com>
132
133         * Makefile.am (mono_int_LDADD): Link with ../../libffi/libffi.a
134         instead of ../../libffi/.libs/libffi.a.
135
136 2001-08-10  Dietmar Maurer  <dietmar@ximian.com>
137
138         * interp.c (ves_exec_method): impl CASTCLASS
139
140         * icall.c: moved the internal call stuff to this file
141
142         * interp.c (ves_exec_method): impl. BOX/UNBOX
143         (ves_icall_System_Array_GetValue): impl.
144         (ves_icall_System_Array_SetValue): impl.
145         added myself to Authors
146
147 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
148
149         * implemented arrays, but you will need a modified version of 
150         Array.cs to get arrays working (will commit soon)
151         
152         * interp.c (ves_icall_array_Set): impl.
153         (ves_icall_array_Get): impl.
154         (ves_icall_array_ctor): impl.
155         (ves_icall_System_Array_GetRank): impl.
156         (ves_icall_System_Array_GetLength): impl.
157         (ves_icall_System_Array_GetLowerBound): impl.
158         (mono_lookup_internal_call): impl.
159
160 2001-08-06  Dietmar Maurer  <dietmar@ximian.com>
161
162         * interp.c (ves_exec_method): impl. NEWARR
163         (ves_exec_method): impl. most LDELEM/STELEM opcodes, LDLEN
164         (newarr): impl.
165         (mono_get_ansi_string): impl.
166         (mono_lookup_internal_call): impl.
167         (ves_exec_method): implemented internal calls
168
169 2001-08-05  Dietmar Maurer  <dietmar@ximian.com>
170
171         * interp.c (ves_pinvoke_method): removed all static vars.
172
173 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
174
175         * interp.c (ves_exec_method): found a way to do unordered
176         compares, implemented CEE_BNE_UN_S, CEE_BGE_UN_S, CEE_BGT_UN_S, 
177         CEE_BLE_UN_S, CEE_BLT_UN_S
178         
179 Wed Aug 1 22:51:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
180
181         * interp.c: handle also MONO_TYPE_CLASS to/from the stack.
182         Change locals to be a memory blob, instead of the structured
183         (but wrong) stackval. Implement bne.un.s opcode. Make the program
184         exit with the error code from Main().
185
186 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
187
188         * interp.c (ves_exec_method): implemented LDSTR
189
190 2001-07-31  Miguel de Icaza  <miguel@ximian.com>
191
192         * interp.c (GET_NATI): Switched from using nati_t to cli/types.h
193         m_i type.  Maybe we should rename the types to be m_i_t instead of
194         m_i alone.
195         
196         Make the code compile after I broke it.
197
198 Tue Jul 31 23:46:33 CEST 2001 Paolo Molaro <lupus@ximian.com>
199
200         * interp.c: fix cleanup.
201         * Makefile.am: don't link with disassembler library.
202
203 2001-07-31  Miguel de Icaza  <miguel@ximian.com>
204
205         (ves_exec_method): Cleanup of the source code.
206
207 Tue Jul 31 20:13:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
208
209         * interp.c: implement stind.*, ldind.*, ldloca.s opcodes.
210         Provide better tracing with DEBUG_INTERP.
211
212 Tue Jul 31 17:52:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
213
214         * interp.c: massive namespace cleanup.
215
216 Mon Jul 30 20:09:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
217
218         * interp.c: update to use mono_method->name.
219
220 Fri Jul 27 20:54:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
221
222         * interp.c: start implementing callvirt. Classes with
223         class constructors are properly initialized when needed.
224         Fix error introduced in version 1.17.
225
226 Fri Jul 27 14:03:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
227
228         * interp.c: implement static field loading and storing.
229
230 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
231
232         * interp.c (ves_pinvoke_method): impl.
233
234 Fri Jul 27 11:49:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
235
236         * interp.c: Removed some debugging printouts. Made stackval_to_data
237         static. Handle also instance methods in CALL opcode. Fix ret to properly
238         deal with void functions. Fixed constructor to leave the object on
239         the stack.
240
241 Thu Jul 26 13:24:51 CEST 2001 Paolo Molaro <lupus@ximian.com>
242
243         * interp.c: ves_exec_method () doesn't take a MonoImage arg
244         anymore. Use the method cache in MonoImage. Updates to
245         mache recent changes in metadata. 
246         Fix newobj code to use new metadata features. Call the class
247         constructor after allocationg the object. Implemented load field
248         and store field opcodes (the support functions need to be finished).
249         
250 Tue Jul 24 16:51:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
251
252         * interp.c, hacks.h: moved a few ugly macros out of the code.
253         Implemented switch opcode.
254
255 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
256
257         * interp.c (newobj): Added function to handle newobj opcode.
258
259 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
260
261         * interp.c (ves_exec_method): Make the interpreter abort with more
262         information than it currently does.
263
264         Enable the slow processor, as it is easier to debug.
265
266 Sun Jul 15 17:50:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
267
268         * Started changelog.
269         * interp.c: use new mono_get_method () function to get the complete
270         info on a method invocation: we support now method invocation with
271         multiple (or zero) simple arguments and with or without a return value.
272         Implement also a couple more opcodes.