Sat Jul 13 19:54:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / interpreter / ChangeLog
index 2016663d180ed3e56ea8eda92996ff974ccc4790..3b0ef84b0ea7aead9f6605b1069651fe742ad935 100644 (file)
@@ -1,4 +1,522 @@
 
+Sat Jul 13 19:54:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: advance ip in conv.r.un.
+
+2002-07-01  Dick Porter  <dick@ximian.com>
+
+       * interp.c (ves_exec): Removed unneeded argument to
+       mono_runtime_run_main()
+
+2002-06-25  Dick Porter  <dick@ximian.com>
+
+       * interp.c (ves_exec): Pass the assembly to mono_runtime_run_main
+
+Wed Jun 19 17:01:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: un-broke after stack trace changes.
+
+Fri May 31 16:17:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c, hacks.h: compiler compatibility fixes.
+
+Fri May 31 13:25:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c, mint.1: added --config command line option.
+
+Thu May 30 14:14:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: lookup P/Invoke method addr only when needed.
+
+2002-05-29  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (ves_exec_method): free type in CEE_SIZEOF
+
+Tue May 28 16:10:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: fixed SIZEOF to work with typedef/typeref.
+
+Fri May 24 15:33:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: added partial async delegate and remoting support.
+
+Thu May 23 18:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: special case string ctors in invoke.
+       Handle null object in throw. Misc integer type mismatch fixes.
+
+2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (ves_runtime_method): share more code with the jit.
+
+Wed May 22 12:31:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: fixed finally handling. In trace mode show
+       exception handling operations and the contents of the stack in the same
+       line as the executing instruction.
+
+2002-05-20  Miguel de Icaza  <miguel@ximian.com>
+
+       * interp.c: Updated help display.
+
+2002-05-20  Radek Doulik  <rodo@ximian.com>
+
+       * interp.c (dump_stack): print boxed values for --noptr
+       (ves_exec_method): use stackval_to_data as pointed out by lupus
+
+2002-05-17  Radek Doulik  <rodo@ximian.com>
+
+       * interp.c (dump_stack): if --noptr then print content of strings
+       in form [str:<printed string>]
+
+2002-05-16  Radek Doulik  <rodo@ximian.com>
+
+       * interp.c (ves_exec_method): use data.i instead of data.l in i32
+       case
+       (ves_exec_method): set type in I64 <--> I32 conversions
+
+2002-05-15  Radek Doulik  <rodo@ximian.com>
+
+       * interp.c (ves_runtime_method): moved stackval_from_data call
+       inside #else branch, consulted on irc with lupus
+
+2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (ves_exec_method): use new mono_unhandled_exception()
+
+2002-05-14  Radek Doulik  <rodo@ximian.com>
+
+       * interp.c: introduced new --noptr option to suppres pointer
+       address printing. I find this useful for comparing trace outputs
+       while porting to ppc
+
+Tue May 14 16:37:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: some finally handling fixes and compilation fixes for
+       changes in the runtime lib.
+
+2002-04-30  Dick Porter  <dick@ximian.com>
+
+       * interp.c: Tell glib to not abort when g_log() etc print
+       recursively
+
+Mon Apr 22 16:52:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: handle muslticast delegates. Implement a couple more
+       convert opcodes. Pretend we spend some time jitting...
+
+2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (ves_exec_method): support internalcall String constructors
+
+2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
+       
+       * interp.c: support for new szarray format.
+
+Tue Apr 16 20:12:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: removed profiling code (moved to common library).
+       Implemented inlining for some special methods.
+
+2002-04-15     Patrik Torstensson <patrik.torstensson@labs2.com>
+
+       * interp.c: Using fullnames when adding icall's (array)
+
+Wed Apr 10 16:07:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: quick implementation for opcodes needed by the new parse
+       routines in corlib.
+
+Tue Apr 9 13:08:26 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: make the interp thread-safe wrt the metadata lib.
+
+Mon Apr 8 17:15:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: display return value with --trace.
+       Call mono_runtime_init ().
+
+2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (interp_mono_runtime_invoke): handle more types,
+       removed runtime_exec_main
+
+Thu Apr 4 11:36:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: don't try to get an IL opcode for runtime and internal
+       call methods.
+
+Thu Mar 28 16:54:51 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: spring warning cleanup.
+
+Thu Mar 28 12:03:28 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: check obj address in stfld.
+
+2002-03-27  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (ves_exec_method): CASTCLASS: fix for transparent proxy
+
+Tue Mar 26 20:09:10 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: set frame->ip before dumping the stack trace.
+
+Tue Mar 26 19:54:45 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: remove glib mem vtable code.
+
+2002-03-26  Dick Porter  <dick@ximian.com>
+
+       * interp.c: Show thread ID's in trace output.
+               
+       New option "--traceclassinit" to put debug output around
+       runtime_class_init().
+
+       Make sure all options are displayed in usage().
+
+Tue Mar 26 17:03:14 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: support fieldrefs when accessing instance fields.
+
+Mon Mar 25 12:59:52 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: allow tracing to be done on a per-method basis.
+       Fix interp_mono_runtime_invoke() to deal correcttly with the return
+       value. Disable glib mem vtable setting.
+
+Thu Mar 21 18:08:37 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: set stack trace info when throwing an exception.
+
+Thu Mar 21 17:32:46 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: intern strings before executing a method (and don't 
+       intern command line arguments anymore). Add sanity checks in alloca
+       use.
+
+Sat Mar 16 19:15:18 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: restore frame on return from unmanaged calls.
+       Add support for continuing execution up to x IL insn.
+       Fix exception handling when an exception is raised in the catch
+       handler of the same method that issued the first one.
+
+2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (ves_runtime_method): set method_info field
+
+Mon Mar 11 14:48:07 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: corlib consistency checls moved to libmetadata.
+
+Mon Mar 11 11:27:27 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: use the new facilities in debug-helpers to
+       disassemble CIL code and match method names to MonoMethods.
+
+Thu Mar 7 17:20:59 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: Boehm-GC enable. Fix some overflow opcodes.
+
+Tue Mar 5 18:12:40 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: fix non-debug build and some more opcode work.
+
+Mon Mar 4 11:21:44 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: print the address of 'this' in tracing mode.
+
+Thu Feb 28 19:18:59 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: add checks for more binary consistency.
+
+2002-02-27  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (interp_mono_runtime_invoke): use alloca instead of g_new0
+
+Tue Feb 26 11:43:34 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: added profiling for object creation.
+
+Mon Feb 25 17:37:07 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: use correct value for guint64 max.
+
+2002-02-22  Radek Doulik  <rodo@ximian.com>
+
+       * interp.c: s/gulong/guint64 as it differs on ppc
+
+Wed Feb 20 22:18:40 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: more complete runtime_invoke () implementation.
+       Fixed castclass/isinst to work correctly with arrays.
+
+Tue Feb 19 20:21:14 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: implement the runtime_invoke function.
+
+Mon Feb 18 15:49:20 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: fix alignment code. Make sure to init classes
+       in more cases. Command-line arguments are interned.
+
+2002-02-16  Radek Doulik  <rodo@ximian.com>
+
+       * interp.c (ves_exec_method): test type of sp [-1] instead of sp
+       [0], because sp [-1] is the value going to be shifted, fixed in
+       CEE_SHL, CEE_SHR, CEE_UN opcodes)
+
+Sat Feb 16 12:00:24 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: fixed cut&paste error for ldind.r4 and ldind.r8.
+
+Fri Feb 15 15:07:27 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: use strrchr instead of rindex. use _isnan and _finite on
+       win32 systems.
+
+2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
+
+       * interp.c (ves_exec_method): replace 
+       'g_assert (sp->type = VAL_VALUETA)' with 
+       'g_assert (sp->type == VAL_VALUETA)' otherwise
+       the assert always passes. FIXME: should the test have been !=?
+
+2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (stackval_from_data): fix for MONO_TYPE_PTR
+
+Wed Feb 13 16:17:38 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: fixed newobj implementation for valuetypes bug found by
+       dietmar. sub.ovf dummy code.
+
+Tue Feb 12 14:08:47 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * hacks.h: check against redefining preprocessor symbol.
+       * interp.c: fix profile info to return more sensible results.
+
+Mon Feb 11 13:05:29 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: added "die on exception" command line argument.
+       When we segfault, set the message in the exception to "Segmentation
+       fault" so people can recognise what's going on.
+
+2002-02-10  Miguel de Icaza  <miguel@ximian.com>
+
+       * interp.c (ves_exec_method): Compare the element_class type token
+       in the class we got as well, instead of the element class vs the
+       toplevel class.
+
+       This fixes the invalid cast exceptions during unboxing
+
+Fri Feb 8 13:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: use opcode information from libmetadata.
+
+2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (ves_exec_method): CEE_UNBOX: use element_class for
+       type check.
+
+2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (main): impl. __array_Address icall
+
+Fri Feb 1 16:03:53 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: exception fixes. Use mono_method_pointer_get ()
+       to easy porting to other archs. Some support for overflow detection.
+
+2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c, jit.c (main): install runtime_exec_main handler
+       (main): bug fix - call TlsAlloc () before we execute code
+
+2002-01-23  Dick Porter  <dick@ximian.com>
+
+       * interp.c: Added some kludges to cope with CONV_OVF_I2,
+       CONV_OVF_I4 and ADD_OVF so that number formatting works.  Also
+       initialise and cleanup the network support.
+
+Thu Jan 10 20:59:59 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c, interp.h: add a flag to mono_create_trampoline ()
+       to handle runtime methods.
+
+Sat Jan 5 15:45:14 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: allow classname:method name in --debug argument.
+       Fix box opcode for valuetypes. Fix a few opcode to take a 16 bit
+       index instead of 32 (stloc, ldloc, starg, etc.).
+
+Thu Jan 3 23:19:27 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: temporary mul.ovf, mul.ovf.un, add.ovf.un implementations
+       to get the compiler going.
+
+Mon Dec 24 17:23:45 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: fix ldc.i8.
+
+Thu Dec 20 20:09:48 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: fix delegate method invocation to handle both
+       static and instance methods.
+
+Tue Dec 18 18:48:50 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: make segv_handler static, handle runtime methods in stack
+       trace.
+
+Thu Dec 13 20:24:28 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: correctly handle exceptions generated in C code.
+       Install an handler for SIGSEGV. Bare-bones profiler and hook for the
+       verifier.
+
+Mon Dec 3 17:15:44 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: call mono_init() after registering internal calls.
+
+2001-11-30  Dick Porter  <dick@ximian.com>
+
+       * interp.c: Replace get_named_exception() with
+       mono_exception_from_name()
+
+Fri Nov 30 12:05:21 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: calculate locals and args offsets only once
+       per method call. Cache trampoline code as well.
+
+2001-11-23  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (ves_exec_method): bug fix for exception5.cs
+
+Mon Nov 19 11:33:00 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: start adding support for handling exceptions across
+       managed/unmanaged boundaries. Cleanup Delegate method invocation.
+       Pass the correct target object in Delegate::Invoke and use the correct
+       'this' pointer in ldvirtftn (bugs pointed out by Dietmar).
+
+Thu Nov 15 17:40:24 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: handle enums with underlying type different from int32.
+       More checks for C structs <-> C# objects consistency.
+
+Wed Nov 14 19:23:00 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: move the stack frame dumping code to a function so it can
+       be called from the debugger. Fix virtual method lookup for interfaces.
+       Throw exceptions instead of aborting in more places.
+       Print also the message in an exception. Updates for field renames in
+       corlib.
+
+2001-11-09  Dick Porter  <dick@ximian.com>
+
+       * Makefile.am (mint_LDADD): Don't need THREAD_LIBS any more
+
+2001-11-07  Miguel de Icaza  <miguel@ximian.com>
+
+       * interp.c: Include stdlib to kill warning.
+       (check_corlib): Adjust format encodings to remove warnings.
+
+Wed Nov 7 15:47:36 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: updates for changes in array code.
+
+Fri Nov 2 19:06:54 CET 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: hanlde field refs. Throw an exception on NULL references.
+       Check consistency of corlib types with the C struct representation.
+
+2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (ves_exec_method): use relative numbering for runtime
+       type checks (and make it work with interfaces)
+
+2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c: removed newobj()
+
+2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (get_virtual_method): use the vtable
+       (arch_compile_method): added to compute vtable entry
+
+Mon Oct 8 16:14:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: use the accessors provided in object.h to deal with
+       MonoArrays. Updates for API renames in metadata. Throw exception
+       in ldelema if index is out of bounds.
+
+Mon Oct 8 10:44:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: fixes for changes in metadata.
+
+2001-10-04  Dick Porter  <dick@ximian.com>
+
+       * interp.c (ves_runtime_method): init_class() the
+       mono_defaults.delegate_class
+       Include mono-endian.h not endian.h
+
+Tue Oct 2 18:51:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: set frame->ip in the leave opcode. Make db_methods static.
+
+Sun Sep 30 11:57:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: compiler and ANSI C portability fixes.
+
+Fri Sep 28 19:37:46 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: Implemented ldtoken, conv.ovf.i. Use MonoClass->byval_arg
+       (and remove related kludges). Don't choke on access to arrays of
+       references. Throw an exception when an internalcall or P/Invoke
+       function don't have an implementation. Throw and EngineException
+       for unimplemented opcodes.
+
+Tue Sep 25 11:12:35 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: fixed get_virtual_method () to deal with interface
+       methods better.
+
+Mon Sep 24 18:50:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: catch a few more error conditions with exceptions instead of
+       erroring out.
+       Don't use g_print() in stack traces because it doesn't work with
+       some float values.
+       When we call an instance method of a valuetype class, unbox the 'this'
+       argument if it is an object.
+       Use mono_ldstr () to implement the ldstr opcode: it takes care of
+       interning the string if necessary.
+       Implemented new opcodes: ckfinite, cgt.un, clt.un, ldvirtftn, ldarga.
+       Fixes to handle NaNs when comparing doubles.
+       Make sure the loaded assembly has an entry point defined.
+       Fixed portability bugs in neg and not opcodes.
+
+2001-09-24  Dietmar Maurer  <dietmar@ximian.com>
+
+       * interp.c (ves_exec_method): LDC_I4: 8bit constants are signed
+       (ves_exec_method): bug fix for NOT/NEG
+       (main): fix bug in parameter parsing
+
+2001-09-23  Dick Porter  <dick@ximian.com>
+
+       * Makefile.am (mint_LDADD): rename PTHREAD_LIBS to THREAD_LIBS
+
+2001-09-23  Dick Porter  <dick@ximian.com>
+
+       * interp.c (main): Do some thread setup and cleanup around the
+       call to ves_exec()
+
+2001-09-21  Dick Porter  <dick@ximian.com>
+
+       * Makefile.am (mint_LDADD): Added PTHREAD_LIBS to the link line
+
 Thu Sep 20 16:32:42 CEST 2001 Paolo Molaro <lupus@ximian.com>
 
        * interp.c: implemented some more opcodes: calli, rem.un,