2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / jit / ChangeLog
index df206cb9037c79480f66c817482ffc43062541cf..11096730d60037b7a111a8a5919c01cdd95adbe5 100644 (file)
@@ -1,3 +1,499 @@
+2003-07-21  Miguel de Icaza  <miguel@ximian.com>
+
+       * jit.c: Remove definition of metadata_section mutex from here
+
+2003-05-19  Dick Porter  <dick@ximian.com>
+
+       * jit.c: Netbsd build fix by marc@informatik.uni-bremen.de.
+
+Thu Apr 24 17:11:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * Makefile.am: rename mono and libmono to oldmono and liboldmono.
+
+2003-04-23  Martin Baulig  <martin@ximian.com>
+
+       * mono.c: The `--debug' command line argument doesn't take any
+       arguments anymore, removed the `--debug-args' argument.
+
+       * debug-jit.c (mono_debug_add_method): Renamed this to
+       mono_debug_jit_add_method(); create the JIT-specific data
+       structure and pass it to mono_debug_add_method().
+
+       * debug.[ch]: Removed.  The code is now in
+       ../metadata/mono-debug.[ch] and mono-debug-debugger.[ch].
+
+       * debug-stabs.c, debug-dwarf2.c: Removed; nobody used this for the
+       last six months.
+
+2003-04-21  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (mono_debug_open): Splitted into mono_debug_init() and
+       mono_debug_init_2().
+       (mono_debug_open_image): Don't open referenced assemblies; this is
+       done automatically by the code in assembly.c.
+
+       * mono.c (main_thread_handler): Call mono_debug_init() before
+       opening the assembly because we need to install the assembly load
+       hook before doing so.
+
+2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * jit.c:
+       (mono_jit_cleanup): moved mono_runtime_cleanup call after the call to
+       mono_domain_finalize.
+
+2003-04-05  Miguel de Icaza  <miguel@ximian.com>
+
+       * jit.c (check_inlining): honor the NOINLING atttribute.
+
+2003-03-31  Martin Baulig  <martin@ximian.com>
+
+       * debug.h (MonoDebuggerEvent): Removed
+       MONO_DEBUGGER_EVENT_THREAD_CREATED.
+
+       * jit.c (mono_thread_start_cb): Don't send the
+       MONO_DEBUGGER_EVENT_THREAD_CREATED event.
+
+2003-03-13  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (_mono_debug_address_from_il_offset): Moved to
+       ../metadata/debug-mono-symfile.c
+
+2003-03-07  Martin Baulig  <martin@ximian.com>
+
+       * debug-jit.c: #include <config.h>.
+
+2003-03-05  Martin Baulig  <martin@ximian.com>
+
+       * debug-jit.c, debug-jit.h: New files.  Moved all JIT-specific
+       stuff here.
+
+       * debug.c (mono_debug_add_method): Moved to debug-jit.c.
+       (mono_debug_handle, mono_debug_initialized): Made them global.
+       (replace_suffix): Removed, this isn't used anymore.
+       (record_line_number): Moved to debug-jit.c.
+       (debug_generate_method_lines): Moved to debug-jit.c
+       (generate_line_number): Renamed to
+       _mono_debug_generate_line_number() and made it global.
+       (debug_update_il_offsets): Moved to debug-jit.c
+       (mono_debug_get_image): Renamed to _mono_debug_get_image() and made
+       it global.
+       (address_from_il_offset): Renamed to
+       _mono_debug_address_from_il_offset() and made it global.
+       (il_offset_from_position): Moved to debug-jit.c
+       (lookup_method): Renamed to _mono_debug_lookup_method() and made
+       it global.
+       (mono_debug_add_method): Moved to debug-jit.c.
+       (mono_debug_create_notification_function): Use two new functions
+       mono_debug_codegen_breakpoint() and mono_debug_codegen_ret()
+       instead of x86_breakpoint() and x86_ret().      
+
+Sat Mar 1 12:36:45 CET 2003 Paolo Molaro <lupus@ximian.com>
+
+       * jit.c: remove unnecessary assert when inlining.
+
+2003-02-17  Martin Baulig  <martin@ximian.com>
+
+       * jit.c (mono_jit_compile_method): Don't emit a `nop' at the start
+       of each method.
+
+2003-02-14  Patrik Torstensson
+
+       * x86.brg: Implemented CONV_OVF_[I|U]4 (freg), this fixes the issues 
+       with the "checked" keyword. Closes bugs #33421 and #35280 (JIT not mint)
+
+2003-02-14  Dietmar Maurer  <dietmar@ximian.com>
+
+       * exception.c (mono_arch_find_jit_info): better way to handle
+       situations where we have no MonoJitInfo
+
+2003-02-11  Zoltan Varga  <vargaz@freemail.hu>
+
+       * trampoline.c (arch_create_jit_trampoline): This function should 
+       allways return a trampoline for managed methods. Fixes bug #29859.
+
+2003-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * debug.c: allocate debug->source_files. Fixes GLib-CRITICAL upon
+       debugging clean up.
+
+2003-02-02  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (mono_debug_add_wrapper): Lookup the wrapper method in a
+       hash table; we need to provide the correct code_size.
+
+2003-02-02  Martin Baulig  <martin@ximian.com>
+
+       * jit.c (mono_jit_compile_method): Call mono_debug_add_wrapper()
+       to add the interncall to the symbol file.
+
+       * debug.c (mono_debug_add_wrapper): New public function.
+
+2003-02-02  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (debug_update_il_offsets): Set the prologue end address
+       to the address of the first source line.
+
+2003-01-31  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (mono_analyze_stack): use the wrapper signature if necessary
+
+2003-01-31  Zoltan Varga  <vargaz@freemail.hu>
+
+       * debug.c (mono_debug_open_image): dynamic assemblies have no debug
+       info.
+
+Thu Jan 30 11:07:06 CET 2003 Paolo Molaro <lupus@ximian.com>
+
+       * helper.c: handle MONO_TYPE_ARRAY as well.
+       
+2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (mono_analyze_stack): impl. CEE_MONO_LDNATIVEOBJ
+       (mono_analyze_stack): RETOBJ always returns native sized objects 
+
+2003-01-28  Zoltan Varga  <vargaz@freemail.hu>
+
+       * x86.brg (mono_ldintftn): use <= instead of <, since the 
+       interface_offsets array is max_interface_id + 1 long.
+
+2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg (mono_ldintftn): fix from Zoltan: use max_interface_id
+
+2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
+
+       * exception.c (ves_icall_get_trace): avoid crash if the exception is 
+       not yet thrown.
+
+       * exception.c (ves_icall_get_trace): avoid crash on unmanaged frames.
+
+2003-01-26  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (mono_debug_init): Take a boolean argument which
+       specifies whether we're running in the Mono Debugger.
+
+2003-01-24  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (mono_debug_io_layer): Disable this on Windows.
+
+2003-01-23  Dick Porter  <dick@ximian.com>
+
+       * mono.c: Use mono_runtime_exec_managed_code() to run all managed
+       code in a subthread.
+
+       * jit.c: Changed thread start and attach callbacks to pass the
+       thread ID, not the MonoThread pointer.  Arrange that managed code
+       execution will fail an assertion in the main thread, just to be
+       sure.
+
+2003-01-22  Martin Baulig  <martin@ximian.com>
+
+       * debug.c: Reverted Gonzalo's last change since it is wrong.
+       We're also using the debugging code on Windows, for instance the
+       stabs stuff when running in gdb.  I hope this code still builds on
+       Windows; if not, we need to fix this.
+       Moved all the mono debugger support code into the debugger itself;
+       when debugging a managed application, the debugger new launches a
+       small unmanaged wrapper application which contains this stuff.
+
+       * debug.h (MonoDebuggerIOLayer): New public typedef; this is just
+       initialized to an array of function pointers to the io-layer
+       function; they don't seem to be public in the `libmono' library.
+       (mono_debugger_event): New public function.  Sends the debugger an
+       event if we're running in the Mono Debugger and does nothing otherwise.
+
+       * mono.c: Don't initialize the Mono Debugger here.
+
+       * jit.c (mono_debug_insert_breakpoint): Removed, this isn't used anymore.
+       (mono_thread_start_cb, mono_thread_attach_cb): Call
+       mono_debugger_event() to send the debugger a callback.
+
+2003-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * debug.c: make all public symbols just dummy for windows.
+
+2003-01-20  Miguel de Icaza  <miguel@ximian.com>
+
+       * debug.c (initialize_debugger_support): ifdef out the call to
+       mono_debugger_init_thread_debug for the release. 
+
+       Someone should look into why its not defined.  I think the problem
+       is what Dick pointed out somewhere: code in io-layer is not
+       supposed to ever be used in Windows, so code for the debugger that
+       lives there must be moved elsewhere.
+
+2003-01-19  Martin Baulig  <martin@ximian.com>
+
+       * debug.c: Ok, this should now finally be working this time ....
+
+2003-01-18  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (mono_debugger_jit_exec): Send the background thread a
+       SIGKILL before returning.
+
+2003-01-17  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg: removed duplicated CONV_OVF_I4
+
+2003-01-17  Martin Baulig  <martin@ximian.com>
+
+       * debug.c: Don't use mono_once here.  Reworked the API a bit to
+       use `mono_debug_' and `debug_' for the general debugging API and
+       `mono_debugger_' and `debugger_' for the Mono Debugger stuff.
+
+2003-01-16  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (debugger_thread_func): We don't need to `raise
+       (SIGSTOP)' anymore; the thread manager already takes care of this.
+
+2003-01-16  Dietmar Maurer  <dietmar@ximian.com>
+
+       * exception.c (arch_handle_exception): exclude runtime invoke
+       wrapper from the stack trace
+
+       * jit.c (mono_cfg_new): allocate extra space to store esp (used by exceptions)
+       (mono_thread_start_cb): save an additional LMF at thread start
+
+2003-01-16  Martin Baulig  <martin@ximian.com>
+
+       * jit.c (mono_runtime_install_handlers): Use SYS_sigaction() for
+       the mono_thread_get_abort_signal () - this is SIGUSR1 on FreeBSD
+       and the LinuxThreads port doesn't allow you to override the handler.
+       [FIXME: This avoids an assertion failure on startup, but there's
+       still an issue with thread termination.]
+
+2003-01-16  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (debugger_thread_func): We don't need to `raise
+       (SIGSTOP)' anymore; the thread manager already takes care of this.
+
+2003-01-16  Martin Baulig  <martin@ximian.com>
+
+       * debug.c: Use the mono/io-layer functions here instead of gthread.
+
+2003-01-14  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (mono_jit_compile_method):  make sure runtime_init is called 
+       (mono_analyze_stack): make sure runtime_init is called
+
+2003-01-14  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (debugger_update_symbol_file_table): Moved all the
+       functionality into debugger_update_symbol_file_table_internal();
+       the latter one will be called from the background thread while
+       already owning the lock.  This'll allow us to step into
+       debugger_update_symbol_file_table() in the debugger and debug it.
+
+2003-01-14  Martin Baulig  <martin@ximian.com>
+
+       * Makefile.am: Link against gthread.
+
+       * jit.c: After realizing that mono-mutex doesn't work either
+       because it doesn't support recursive mutexes on FreeBSD, rewrote
+       the whole thread stuff to use gthread.  This seems to fix this
+       weird deadlock in the debugger as well.
+
+2003-01-12  Alp Toker  <alp@atoker.com>
+
+       * exception.c: Typo fix: insinde -> inside
+
+2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
+
+       * exception.c (ves_icall_get_frame_info): skip one more frame and also
+       MONO_WRAPPER_RUNTIME_INVOKE wrappers
+       (x86_unwind_native_frame): disable unnecessary assertion
+
+2003-01-07  Dietmar Maurer  <dietmar@ximian.com>
+
+       * exception.c (ves_icall_get_frame_info): fix bug 36382
+
+Tue Jan 7 15:15:41 CET 2003 Paolo Molaro <lupus@ximian.com>
+
+       * jit.c: handle wrapper_data in NEWOBJ/CALL.
+
+2003-01-07  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (mono_analyze_stack): add check for NULL target in STFLD
+
+2003-01-06  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (debugger_finished_mutex): Use a recursive mutex here.
+
+       * debug.c: Correctly handle the `debugger_finished_mutex'; it is
+       only unlocked by the pthread_cond_wait() in mono_debugger_wait().
+
+2003-01-04 Jackson Harper <jackson@latitudegeo.com>
+
+       * debug.c: Move must_send_finished var declaration out of #if win32
+       block (this fixes the build on win32)
+
+2003-01-05  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (mono_debugger_jit_exec): Custom version of mono_jit_exec();
+       this is used when we're running inside the Mono Debugger 
+       (mono_debugger_wait): Put the waiting code into a function of its own.
+
+       * mono.c (main): Call mono_debugger_jit_exec() instead of
+       mono_jit_exec() if we're running inside the Mono Debugger.
+       
+2003-01-05  Martin Baulig  <martin@ximian.com>
+
+       * debug.h (MonoDebugFormat): Added
+       `MONO_DEBUG_FORMAT_MONO_DEBUGGER'; this allows us to check whether
+       we're running inside the Mono Debugger prior to the args parsing.
+
+2003-01-04  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (release_symbol_file_table): Only call this if we're
+       actually modifying the symbol tables.
+       (mono_debug_open): Always set the `mono_debugger_class_init_func'
+       for MONO_DEBUG_FORMAT_MONO; this stuff should also go into core dumps.
+
+2003-01-03  Martin Baulig  <martin@ximian.com>
+
+       * debug.c: Disable the mono debugger stuff on Windows.
+
+2003-01-03  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (mono_debugger_trampoline_breakpoint_callback): New
+       function.  This is called from the breakpoint trampoline to signal
+       the debugger and wait until it has reload the symbol tables.
+
+       * trampoline.c (get_breakpoint_trampoline): Call the new
+       mono_debugger_trampoline_breakpoint_callback() in the breakpoint
+       trampoline just before the breakpoint.
+
+2002-12-31  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (MonoDebuggerSymbolFileTable): Added `global_symfile'
+       field to point to the MonoGlobalSymbolTable.
+
+2002-12-30  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (MonoDebuggerInfo): Put back `symbol_file_modified'.
+       This variable now specifies that the symbol tables have been
+       modified after the last notification has been send.  The debugger
+       uses this flag to check whether it needs to reload the symbol
+       tables or not.
+       (debugger_compile_method): Just send a notification to the
+       debugger, but don't set the modified flag.  It may or may not be
+       set when the debugger gets the notification - depending on whether
+       the JIT compilation added a new method to the symbol tables.
+
+2002-12-30  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (debugger_compile_method): This is a wrapper around
+       mono_compile_method() which always sends a notification to the
+       debugger.
+
+2002-12-30  Martin Baulig  <martin@ximian.com>
+
+       * debug.c: Reload the symbol file table before sending the
+       notification event to the debugger.
+       (MonoDebuggerInfo): Removed `update_symbol_file_table'.
+
+2002-12-31  Martin Baulig  <martin@ximian.com>
+
+       * debug.c: Propertly lock everything and avoid race conditions.
+       (MonoDebuggerInfo): Removed the `symbol_file_modified' again.
+
+2002-12-31  Duncan Mak  <duncan@ximian.com>
+
+       * debug.c (initialize_debugger_support): Fix build error by
+       declaring ret at the top of the function.
+
+2002-12-30  Martin Baulig  <martin@ximian.com>
+
+       * debug.c: When running under the mono debugger, create a special
+       debugger thread; always protect the symbol tables with a mutex.
+
+2002-12-28  Martin Baulig  <martin@ximian.com>
+
+       * debug.c (MonoDebuggerInfo): Added `symbol_file_modified'; it's
+       incremented each time one of the symbol tables is modified.
+
+Thu Dec 19 18:31:54 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * jit.c: fix LDELEMA implementation here as well.
+
+Wed Dec 18 11:42:58 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * jit.c: handle CEE_CONV_OVF_U8_UN like CEE_CONV_OVF_I8_UN.
+
+Wed Dec 18 11:36:04 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+       * jit.c: query the thread abort signal from the runtime.
+
+2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
+
+       * jit.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
+
+2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
+
+       * jit.c (mono_analyze_stack): call the utility function 
+       mono_field_from_token to avoid code duplication.
+
+2002-12-02  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (mono_analyze_stack): added some additinal checks to verify IL code
+
+       * x86.brg (stmt): POP floating point stack correctly
+
+2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
+
+       * emit-x86.c (arch_emit_prologue): don't save caller saved
+       registers twice.
+
+       * exception.c (x86_unwind_native_frame): support exceptions inside
+       native code using gcc generated exception tables (-fexception).
+
+2002-11-19  Dietmar Maurer  <dietmar@ximian.com>
+
+       * exception.c: include some code from Zoltan Varga, but modified
+       it slightly.
+
+2002-11-27  Dietmar Maurer  <dietmar@ximian.com>
+
+       * exception.c: massive code cleanups. The code is still
+       architecture dependent, but it should be now possible to reuse the
+       complex parts for other architecture.
+
+2002-11-15  Dick Porter  <dick@ximian.com>
+
+       * jit.c: Pass the attach callback to mono_runtime_init().
+
+2002-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * jit.c: display the domain name in trace output.
+
+2002-11-08  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg (reg): fix bug #2721
+
+       * jit.c (mono_runtime_install_handlers): impl.
+
+2002-10-17  Martin Baulig  <martin@gnome.org>
+
+       * debug.c (mono_debug_add_method): Make this actually work if we don't
+       have any lifetime information.
+
+2002-10-15  Martin Baulig  <martin@gnome.org>
+
+       * jit.cs (PUSH_TREE): Always set t->cli_addr here.
+
+       * debug.c (generate_line_number): Small fix to make this actually
+       work for more complex things.
+
+2002-10-11  Dietmar Maurer  <dietmar@ximian.com>
+
+       * x86.brg (freg): use fprem instead of fprem1
+
+2002-10-03  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit.c (ves_array_element_address): added check for out of range index
+       (mono_analyze_stack): added fix for bug #31654
+
 2002-10-01  Martin Baulig  <martin@gnome.org>
 
        * debug.c: Don't create an .il file for the dynamic symbol file.