2007-03-03  Klaus Treichel  <ktreichel@web.de>

	* NEWS, configure.in: update version for the "0.8.0" release.

2007-02-27  Gopal V  <gopalv82@yahoo.com>

	* auto_gen.sh: Remove bash specific pushd/popd

	* .cvsignore, libgc/.cvsignore, libffi/.cvsignore: add
	config.guess, compile and autom4te.cache/ to the ignored files.

	* config.guess, config.sub, ltmain.sh, libffi/Makefile.in,
	libffi/aclocal.m4, libffi/configure, libffi/fficonfig.h.in,
	libffi/include/Makefile.in, libgc/Makefile.in, libgc/aclocal.m4,
	libgc/config.guess, libgc/config.sub, libgc/configure, libgc/ltmain.sh,
	libgc/doc/Makefile.in, libgc/include/Makefile.in: Remove these 
	maintainer generated files from CVS.

2007-02-24  Klaus Treichel  <ktreichel@web.de>

	* clrwrap/.cvsignore, csant/.cvsignore, cscc/.cvsignore,
	cscc/bf/.cvsignore, cscc/c/.cvsignore, cscc/cpp/.cvsignore,
	cscc/csharp/.cvsignore, cscc/java/.cvsignore, csdoc/.cvsignore,
	doc/.cvsignore, engine/.cvsignore, ilalink/.cvsignore, ilasm/.cvsignore,
	ildasm/.cvsignore, ildd/.cvsignore, ilfind/.cvsignore, ilgac/.cvsignore,
	ilheader/.cvsignore, ilnative/.cvsignore, ilranlib/.cvsignore,
	ilsize/.cvsignore, ilstrip/.cvsignore, resgen/.cvsignore,
	support/.cvsignore,tests/.cvsignore: Add .libs and other autogenerated
	files.

	* support/file.c: Increase buf by result in ILSysIOWrite to adjust the
	buffer pointer to the next start position so that the write continues at
	the right position in the case that the write was interrupted.

	* profiles/.cvsignore: Added with Makefile.in and Makefile.

2007-02-20  Klaus Treichel  <ktreichel@web.de>

	* configure.in: Remove the .libs from the library search path for libjit
	because libtool will handle this (Broke build on Msys with jit enabled).

	* ilgac/ilgac.c: Fix build on systems where symlinks are not available. The
	assembly version is ILUInt16 and not ILUInt32.

2007-02-19  Klaus Treichel  <ktreichel@web.de>

	* configure.in: Fix build on cygwin by moving the check for windows to the
	start in front of the check for programs so that the changed CC can be
	taken into account.

2007-02-18  Klaus Treichel  <ktreichel@web.de>

	* libffi/configure.in: Remove obsolete file.

	* doc/texinfo.tex: Remove autogenerated file.

2007-02-18  Robert Schwebel  <r.schwebel@pengutronix.de>

	* auto_gen.sh: Run libtoolize as first step and run auto_gen.sh in the
	subdirs libgc and libffi too.

	* configure.in: Replace outdated AC_PROG_RANLIB by AC_PROG_LIBTOOL.

	* libffi/configure.ac: Remove AM_ENABLE_MULTILIB.

	* libffi/Makefile.am: Remove the setting of AM_MAKEFLAGS because it breaks
	make distcheck. Fix make maintainer-clean by adding MAINTAINERCLEANFILES.

	* libgc/Makefile.am: Don't distribute libtool.m4. Fix make
	maintainer-clean by adding MAINTAINERCLEANFILES.

	* libgc/auto_gen.sh, libffi/auto_gen.sh: Added.

2007-02-18  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_array.c: clean up the source.

2007-02-17  Klaus Treichel  <ktreichel@web.de>

	* engine/cctormgr.c, engine/cctormgr.h: Handle running needed class
	initializers for methods compiled and locked by an other thread which
	has to be invoked by the current thread which holds the cctor lock.

	* engine/ilrun.c: Remove running the class initializer for the class
	containing main because this is handled by the engine now.

2007-02-15  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_delegate.c: Fix a deadlock introduced with my last cctor
	manager change. The functions to lookup the methods *MUST* not lock the
	metadata.

	* engine/jitc_pinvoke.c: remove the dumps from the on demand compiler
	function because this is handled now in the on demand driver function.

2007-02-13  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_delegate.c: remove the dumps from the on demand compiler
	functions because this is handled now in the on demand driver function.

2007-02-13  Robert Schwebel  <r.schwebel@pengutronix.de>

	* libtool.m4, libgc/libtool.m4: Remove auto generated files.

2007-02-12  Klaus Treichel  <ktreichel@web.de>

	* configure.in: Export CC after disabling the use of the cygwin library
	so that this is used for configuring libffi and libgc too.

	* ChangeLog: Fix a typo. (Spotted by Robert Schwebel)

2007-02-11  Radek Polak  <psonek2@seznam.cz>

	* dumpasm/dump_class.c: Forgot to add parameter for dump offsets.

2007-02-11  Radek Polak  <psonek2@seznam.cz>

	* include/il_dumpasm.h, dumpasm/dump_method.c: Added option for
	printing IL offsets in dumped function.

	* engine/debugger.c: Dump offsets so that debugger can display
	current position in IL disassembly.

2007-02-11 Klaus Treichel  <ktreichel@web.de>

	* engine/cctormgr.c, engine/cctormgr.h: Add support for locking methods
	that require class initializers to be executed till the class initializers
	finished executing.

	* engine/convert.c: Use the new coder functions to handle the method locks
	for the cvm coder. Remove the execution of class initializers for the jit
	coder because that's handled in the coder itself.

	* engine/cvmc.c: Add the new arg to the cctors execution and the method to
	handle the method locks.

	* engine/cvmc_call.c: Remove the queueing of the class initializer on
	loading a function pointer on the stack.

	* engine/jitc.c: Use the new on-demand compilation feature in libjit to
	handle the method locks. Add the new arg to the cctors execution and the
	method to handle the method locks.

	* engine/jitc_call.c, engine/jitc_except.c, engine/jitc_inline.c,
	engine/jitc_obj.c, setup.c: Remove all conditionals if the cctor manager
	is enabled because the other option is removed.

	* engine/null_coder.c: Add the new arg to the cctors execution and the
	method to handle the method locks.

	* include/il_coder.h: Add the new arg to the cctors execution and the
	method to handle the method locks to the coder definition.

	* include/il_thread.h: Add function prototypes for semaphores.

	* support/Makefile.am: Add the new file semaphores.c to the sources.

	* support/pt_defs.c, support/pt_defs.h, support/no_defs.s,
	support/win32_defs.h: Add a semaphore primitive for increasing the
	semaphore count by more than 1.

	* support/semaphore.c: Added.

2007-02-09  Radek Polak  <psonek2@seznam.cz>

	* dumpasm/Makefile.am, ildasm/Makefile.am, ildasm/ildasm_main.c,
	include/il_dumpasm.h: Move all disassembler functions to dumpasm
	library so that debugger can use it.

	* ildasm/ildasm_attrs.c, ildasm/ildasm_class.c, ildasm/ildasm_data.c,
	ildasm/ildasm_global.c, ildasm/ildasm_java.c, ildasm/ildasm_method.c,
	ildasm/ildasm_utils.c: Moved to dumpasm directory under appropriate
	filenames.

	* dumpasm/dump_attrs.c, dumpasm/dump_class.c, dumpasm/dump_data.c,
	dumpasm/dump_global.c, dumpasm/dump_java.c, dumpasm/dump_method.c,
	dumpasm/dump_utils.c: New files comming from ildasm directory.

	* ildasm/ildasm_internal.h: Removed this file, the definitions are now
	in il_dumpasm.h.

	* engine/debugger.c: Make show_ildasm command work.

2007-02-09  Radek Polak  <psonek2@seznam.cz>

	* pnet/engine/debugger.c: Make show_dasm command work with jit coder.

2007-02-06  Klaus Treichel  <ktreichel@web.de>

	* libffi/configure.ac, libffi/configure: Remove the testsuite from the
	subdirs and fix the multilib support for pnet.

	* depcomp: Add needed file to build libffi.

2007-02-06  Robert Schwebel  <r.schwebel@pengutronix.de>

	* Makefile.am, auto_gen.sh, configure.in, codegen/Makefile.am,
	cscc/bf/Makefile.am, cscc/bf/bf_defs.tc, cscc/c/Makefile.am,
	cscc/c/c_defs.tc, cscc/common/Makefile.am, cscc/csharp/Makefile.am,
	cscc/csharp/cs_defs.tc, cscc/java/Makefile.am, cscc/java/java_defs.tc,
	csdoc/Makefile.am, doc/Makefile.am, doc/mkcvmdoc.sh, engine/Makefile.am,
	ilasm/Makefile.am, include/Makefile.am, resgen/Makefile.am,
	samples/Makefile.am, tests/Makefile.am: Fix build system by adding missing
	sources which have to be in the distribution and excluding built sources.
	Enable passing all arguments to configure to the configure of libffi and
	libgc. Pimping auto_gen.sh. Hack the out of tree build in the cscc subdirs
	which should be replaced by adding support to specify input- and/or output
	dir.

	* profiles/Makefile.am: Added

2007-02-02  Radek Polak  <psonek2@seznam.cz>

	* ilgac/ilgac.c: Fix problem with make uninstall in pnetlib on cygwin.
	Problem is that uninstall wants to delete files that do not exist and
	ilgac reports this as fatal error. Now we just silently ignore
	attempts to delete files which do not exist.

2007-01-23  Radek Polak  <psonek2@seznam.cz>

	* configure.in: Remove --with-debugger configure option.
	
	* profiles/compact, profiles/compact-fp, profiles/full,
	profiles/full-tl, profiles/kernel, profiles/kernel-fp, profiles/tiny:
	Define IL_CONFIG_DEBUGGER in profiles, where it can be useful.

	* engine/cvmc.c, engine/cvmc_setup.c, engine/debugger.c,
	engine/debugger.h, engine/dumpconfig.c, engine/engine.h,
	engine/ilrun.c, engine/jitc.c, engine/jitc_call.c,
	engine/jitc_locals.c, engine/jitc_setup.c, engine/thread.c,
	include/il_debugger.h: Rename IL_DEBUGGER conditional symbol to
	IL_CONFIG_DEBUGGER.

2007-01-21  Klaus Treichel  <ktreichel@web.de>

	* engine/cctormgr.c, engine/cctormgr.h: Add the SetCurrentMethod function.
	Use this information to optimize the queuing of classes to be initialized.

	* engine/cvmc.c, engine/cvmc_call.c, engine/cvmc_setup.c, engine/jitc.c,
	engine/jitc_call.c, engine/jitc_inline.c, engine/jitc_except.c,
	current method in the cctormanager. Move the cctor invokation from the
	engine/jitc_setup.c: Set the call of the method to the invokation of the
	method.

	* engine/jitc_array.c: Fix a deadlock if the object array for varargs or
	async delegate invokation is created and the class for the object array
	doesn't exist yet.

2007-01-19  Klaus Treichel  <ktreichel@web.de>

	* engine/cvmc_call.c: Check for running a cctor too if a function pointer
	is pushed on the stack.

	* engine/jitc_call.c: Check for running a cctor too if a function pointer
	is pushed on the stack.

	* engine/ilrun.c: Use the coder's cctor running function for running the
	cctor of the class containing the main function. This prevents this cctor
	being executed twice.

2007-01-16  Radek Polak  <psonek2@seznam.cz>

	* libgc/include/gc.h: Patch for compiling with uclibc which does not
	have execinfo.h.

2007-01-16  Klaus Treichel  <ktreichel@web.de>

	* include/il_coder.h: Add the functions runCCtors to execute the queued
	cctors during generating the current method and runCCtor to run one class
	initializerand the helper macros for the new slots.

	* image/program.h: Add the new system internal attribute
	IL_META_TYPEDEF_CCTOR_RUNNING to the type attributes to detect is a cctor
	is allready executing and to avoid to execute it recursively.

	* engine/cctormgr.c, engine/cctormgr.h: Added new manager functions for
	running the class initializers. This one makes sure that initializers are
	executed only once and methods relying on the execution of a class
	initializer in a different thread wait for it's completition.

	* engine/convert.c: Acquire the metadata lock during generation of a method
	with the jit coder. Call the new coder method RunCCtors after a method was
	successfully generated.

	* engine/cvmc.c: Add the cctor manager to the cvm coder class and add the
	new coder functions for running the cctors.

	* engine/cvmc_call.c: Replace the inline call to the cctor with queueing
	the execution of the cctor in the cctor manager.

	* engine/cvmc_obj.c: Replace the inline call to the cctor with queueing
	the execution of the cctor in the cctor manager.

	* engine/cvmc_setup.c: Remove the cctor once instruction for static
	constructors.

	* engine/engine.h: Add the decalaration of the new function _ILLookupClass.

	* engine/lib_helpers.c: Use une new coder function for running the cctors
	in _IL_RuntimeHelpers_RunClassConstructor.

	* engine/lookup.c: Add the function _ILLookupClass to find a class by name
	without laying out the class and use this function in LookupClass.

	* engine/null_coder.c: Add the stubs Coder_RunCCtors and Coder_RunCCtor for
	 the new coder functions.

	* engine/jitc.c, engine/jitc_array.c, engine/jitc_call.c,
	engine/jitc_delegate.c, engine/jitc_except.c, engine/jitc_obj.c,
	engine/jitc_pinvoke.c,, engine/jitc_setup.c: Add support for the cctor
	manager. Replace function calls acquiring metadata locks with the non
	locking ones. (ILSizeOfType -> _ILSizeOfTypeLocked, ...) to avoid
	deadlocks.

	* engine/Makefile.am: Add the new files cctormgr.c and cctormgr.h to the
	engine sources.

2006-01-07  Klaus Treichel  <ktreichel@web.de>

	* engine/heap.c: Add _ILEngineAllocTyped to allocate memory for objects
	with type information if typed allocation is enabled and use this function
	for object allocation.

	* engine/cvm_ptr.c: Allocate the memory for the class' static area with
	typed allocation if it is enabled.

	* engine/jitc_alloc.c: Handle the case for thin locks correctly where no
	type descriptor is available if thin locks are used.

2006-01-01  Klaus Treichel  <ktreichel@web.de>

	* engine/engine.h: Add prototypes for the helper functions to create the
	type descriptors for a class.

	* engine/jitc.c: Add the forward declaration and libjit signature for the
	new function _ILJitAllocTyped.

	* engine/jitc_alloc.c: Add the new function _ILJitAllocTyped for typed
	allocation of objects and call this one in _ILJitAllocObjectGen if typed
	allocation is enabled.

	* engine/jitc_call.c: Use _ILJitAllocObjectGen instead of _ILJitAllocGen
	for boxing varargs.

	* engine/jitc_delegate.c: Use _ILJitAllocObjectGen instead of _ILJitAllocGen
	for boxing delegate arguments in asynchonous calls.

	* engine/jitc_obj.c: Use typed allocation to allocate the class' static
	area if typed allocation is enabled.
	Use _ILJitAllocObjectGen instead of _ILJitAllocGen to allocate the object
	in BoxSmaller.
	
	* engine/layout.c: Add the generation of type descriptors if typed
	allocation is enabled. Create the type descriptor for a class during layout
	if typed allocation is enabled.

2006-12-31  Klaus Treichel  <ktreichel@web.de>

	* configure.in: Add the --enable-typedalloc option to use typed allocation
	with libgc. Add the -fno-omit-frame-pointer option to the CFLAGS if the
	jit is used.

	* engine/jitc_inline.c: Add the check of the noinline flag in the method's
	implementationattributes in the inlinable check.

2006-12-21  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_locals.c: Fix the build without the thread in the method
	signature. 

2006-12-16  Klaus Treichel  <ktreichel@web.de>

	* engine/lib_defs.c: Add the structure SArrayHeader and use it in the
	header of simple zero based arrays. Add the macro ArrayLength to access
	the array length.

	* engine/cvm_conv.c, engine/cvm_ptr.c, engine/jitc_diag.c,
	engine/lib_array.c, engine/lib_crypt.c, engine/lib_delegate.c,
	engine/lib_diag.c, engine/lib_emit.c, engine/lib_encoding.c,
	engine/lib_helpers.c, engine/lib_marshal.c, engine/lib_misc.c,
	engine/lib_reflect.c, engine/lib_socket.c, engine/lib_string.c,
	engine/lib_stringbuilder.c, engine/lib_task.c, engine/lib_thread.c,
	engine/lib_type.c, engine/throw.c: Use the new macro ArrayLength where
	ever the length of a simple array is accessed.

	* engine/jitc_array.c: Use the new structure SArrayHeader to access the
	length field of a simple array.

2006-12-11  Klaus Treichel  <ktreichel@web.de>

	* engine/Makefile.am: Add jitc_inline.c to the jit coder sources.

	* engine/jitc.c: Add method implementation flags needed for inlining and
	include jitc_inline.c where needed.

	* engine/jitc_branch.c: Remove the #ifdef _IL_JIT_OPTIMIZE_NULLCHECK and
	#endif around the _ILJitValuesResetNullChecked in JITCoder_Label because
	the macro is defined now how it's needed for the configuration.

	* engine/jitc_call.c: Add support for inlining methods in
	JITCoder_CallMethod. Store the value to return in the inline context and
	jump to the end of the inlined function if returning from an inlined method
	in JITCoder_ReturnInsn.

	* engine/jitc_labels.c: Add support for labels in inlined methods.

	* engine/jitc_locals.c: Add support for locals and args in inlined methods.

	* engine/jitc_setup.c: Add support for inlined methods in the setup and
	finish functions of the jit coder.

	*engine/jitc_stack.c: Add support for inlining methods.

	*engine/jitc_inline.c: Added

2006-11-30  Klaus Treichel  <ktreichel@web.de>

	* Makefile.am: Set DIST_SUBDIRS to SUBDIRS to fix make distclean if pnet
	is built with jit.

2006-11-29  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Add inlineing of System.Math methods.

	* engine/jitc_math.c: added.

	* engine/Makefile.am: Add jitc_math.c to the jitc sources.

2006-11-28  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.h: Add System.Array and System.Math to the classes handled
	internal.

	* engine/jitc.c: Change the prototype for inlineing internalcalls.

	* engine/jitc_array.c: Handle the changed prototype for inlineing and do
	more errorchecking.

	* engine/jitc_call.c: Handle the changed prototype for inlineing
	internalcalls.

2006-11-27  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_arith.c: Use the jit_insn_rem instead of jit_insn_rem_ieee
	for the rem opcodes.

2006-11-25  Klaus Treichel  <ktreichel@web.de>

	* support/socket.c: Fix build where fcntl is not available.

2006-11-23  Heiko Weiss <heiko.weiss@de.trumpf-laser.com>

	* support/socket.c: fixed that socket gets closed if app was killed.

2006-11-13  Klaus Treichel  <ktreichel@web.de>

	* engine/cvm_inline.c, engine/lib_reflect.c: Change the
	NotSupportedException back to the NotImplementedException. (It's better to
	read the ECMA specs first ;).)

2006-11-12  Roman I Khimov  <roman@khimov.ru>

	* engine/cvm_inline.c, engine/verify_call.c: Fix build witd profiles that
	don't have floating point support. Replaced the
	System.NotImplementedException with a System.NotSupportedException.
	(Patch #5518, Klaus)

	* engine/cvm_dasm.c, engine/lib_math.c, engine/lib_reflect.c,
	support/cvt_float.c, support/read_float.c, support/rem_float.c,
	support/test_float.c, support/write_float.c: Remove functions not needed
	without FP support. (Patch #5536, Klaus)

2006-11-05  Klaus Treichel  <ktreichel@web.de>

	* libgc/configure, libgc/configure.in, libgc/darwin_stop_world.c,
	libgc/dyn_load.c, libgc/malloc.c, libgc/os_dep.c, libgc/pthread_support.c,
	libgc/version.h, libgc/doc/README, libgc/doc/README.changes,
	libgc/include/gc_config_macros.h, libgc/include/gc.h,
	libgc/include/private/gcconfig.h: Update to libgc 6.8.

2006-11-04  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* engine/process.c: Don't destroy the current thread before invoking the
	finalizers if the jit is used because the thread might be needed to
	process async. delegates invoked during the finalization process.
	(Patch #5352, Klaus)

2006-11-03  Roman I Khimov  <roman@khimov.ru>

	* engine/lib_info.c: Fix build with profiles that don't support networking.
	(Patch #5516, Klaus)

2006-11-02  Roman I Khimov  <roman@khimov.ru>

	* support/time.c: Fix ILGetTimeZoneAdjust if tm_gmtoff is not present in
	the tm struct (Patch #5144, Klaus).

2006-10-26  Russell Stuart  <russell-savannah@stuart.id.au>

	* engine/lib_string.c: Make String.IndexOf("", ...) and
	String.LastIndexOf("", ...) always match, as they do in
	Microsoft's implementation.

	* cvm_except.c: save and restore exceptHeight in
	finally blocks.

2006-10-29  Radek Polak <psonek2@seznam.cz>

	* pnet/engine/lib_info.c: implement Environment.UserDomainName so that
	it returns machine name instead of null.

2006-10-29  Radek Polak <psonek2@seznam.cz>

	* engine/lib_array.c: fix Array.Clear() when called with empty array,
	index=0 and count=0.

2006-10-22  Klaus Treichel  <ktreichel@web.de>

	* engine/cvmc_call.c, engine/cvmc_stack.c: Handle the new engine type
	ILEngineType_CM (controlled-mutability managed pointer),

	* engine/verify.c: Initialize the new flag vor the readonly. prefix.

	* engine/verify_call.c, engine/verify_obj.c, engine/verify_ptr.c: Handle
	the new engine type ILEngineType_CM (controlled-mutability managed pointer),
	Implement the unbox.any and readonly. opcodes. Start with tha handling of
	the no. and constrained. opcodes.

	* engine/jitc_obj.c: Fix a bug in the ldfld opcode in the case that the
	object is a value type on the stack.

	* ilasm/ilasm_output.c: Remove the wrong ann.live and ann.ref opcodes
	which opcodes have other standard meanings now.

	* ilasm/ilasm_scanner.l: Remove the wrong ann.live and ann.ref opcodes
	and add the readonly., no. and constrained. opcodes.

	* image/opdef.c: Remove the wrong ann.live and ann.ref opcodes and add
	the readonly., no. and constrained. opcodes.

	* include/il_coder.h: Add the controlled-mutability managed pointer needed
	for the readonly prefix to the engine types.

	* include/il_opcodes.c: Remove the wrong ann.live and ann.ref opcodes which
	opcodes have other standard meanings now and add the readonly., no. and
	constrained. opcodes. Add the allowed flags for the no. prefix.

2006-10-20  Klaus Treichel  <ktreichel@web.de>

	* include/il_meta.h, include/il_program.h, image/marshal.c: Add
	ILPInvokeGetCharSet in image/marshal.c to get the characterset used to
	marshal a method or struct. On a Windows platform the automatic
	characterset depends on the current windows version (GetVersion()).
	For Windows 9x and older the ansi characterset is used and for all
	NT versions utf16.

	* engine/convert.c, engine/jitc.c: Add name mangling  for the method name
	on Windows platforms if ExactSpelling = false in the DllImportAttribute.
	This allows using unicode versions of functions on NT and the ansi versions
	on older systems.

2006-10-18  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_array.c: Change the allocation scheme for the arrays. Use
	atomic allocation for arrays which elements are either primitive types but
	no TypedRef, no reference types and value types which do not contain any
	reference types.

2006-10-17  Radek Polak <psonek2@seznam.cz>

	* engine/debugger.c: show_locals can handle all primitive types,
	strings and chars are dumped in utf8.

2006-10-17  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Add signature for allocating simple arrays. Return and
	pass TypeRef values by reference in internal calls. Do some more
	reorganization of the source files.

	* engine/jitc_alloc.c: Move the prototypes for memory allocation from
	jitc.c to this file.

	* engine/jitc_array.c: Move the coder functions for array handling from
	jitc_ptr.c to this file. Move the function for creation of an Object *
	array from jitc_delegate.c to this file. Optimize creation of simple
	arrays. Adjust the calls to _ILJitThrowSystem to the new signature.

	* engine/jitc_call.c: Adjust the calls to _ILJitThrowSystem to the new
	signature. Fix the function for packing varargs. 

	* engine/jitc_delegate.c: Move the function to create an object array to
	jitc_array.c and adjust the name change in the calls. 

	* engine/jitc_except.c: Move the declaration of the internal exceptions
	from jitc.c to this file. Change _ILJitThrowInternal so that the first arg
	is a ILJitFunction instead of the ILJITCoder *.

	* engine/jitc_obj.c: Adjust the calls to _ILJitThrowSystem to the new
	signature. Implement the arglist opcode.

	* engine/jitc_pinvoke.c: Adjust the calls to _ILJitThrowSystem to the new
	signature.

	* engine/jitc_ptr.c: Move the coder functions for arrays to jitc_array.c.

	* engine/lib_misc.c: The System.RuntimeArgumentHandle is passed by value
	if the jit coder is used.
 
2006-10-15  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c, engine/jitc_call.c, engine/verify_call.c,
	include/il_coder.h: Add the call signature to the ILCoderMethodInfo to
	create the libjit call signature for the indirect call (calli opcode).
	Handle call signature in _ILJitCreateMethodSignature. Implement the
	calli opcode.

	* engine/jitc_arith.c: Preserve the flags of the pointer value in
	pointer operations if one and only one pointer is involved.

	* engine/jitc_conv.c: Preserve the flags of the original value after the
	conversion is done.

	* engine/jitc_var.c: Add stats info for the address_of opcodes.

2006-10-13  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_obj.c, engine/jitc_ptr.c: Handle the pointer relative store
	of value types correctly which are subclasses of the type to store.

	* engine/jitc_stack.c: Add macros to handle memcpy, memmove and memset.

2006-10-13  Gopal V  <gopalv82@yahoo.com>

	* engine/verify_ptr.c: Allow floats/doubles to be stored using stobj.

2006-10-12  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Move _ILJitValueConvertExplicit below
	_ILJitValueConvertImplicit. Optimize both functions to
	minimize the steps needed for the conversion. Extend
	_ILJitCreateMethodSignature so that varargs are handled correctly.
	-> Add an additional void * arg for internal methods and set the
	jit_abi to vararg for pinvokes.

	* engine/jitc_arith.c: Fix the shift right opcodes so that values
	on the stack < Int32 are handled correctly.

	* engine/jitc_call.c: Add creation of the call signature. Inplicitely
	convert the args to the type in the signature.

	* engine/jitc_const.c: Replace jit_type_void_ptr by _IL_JIT_TYPE_VPTR
	for the LDNULL opcode.

	* engine/jitc_ptr.c: Return the array length as int instead of unsigned
	int.

	* engine/jitc_stack.c: Set all duplicates of a value null checked if the
	value is checked for null. Check if references to a local/arg is passed
	in a method call and replace this local on the stack with duplicates.
	Fix two small bugs when clearing flags.

2006-10-10  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c, engine/jitc_arith.c, engine/jitc_array.c,
	engine/jitc_branch.c, engine/jitc_branch.c, engine/jitc_call.c,
	engine/jitc_const.c, engine/jitc_conv.c, engine/jitc_except.c,
	engine/jitc_labels.c, engine/jitc_locals.c, engine/jitc_obj.c,
	engine/jitc_ptr.c, engine/jitc_stack.c, engine/jitc_var.c: Complete rework
	of the evaluation stack management. Without enabling
	_IL_JIT_OPTIMIZE_LOCALS in jitc.c it behaves similar to the old one.
	With _IL_JIT_OPTIMIZE_LOCALS enabled it allows a lot more optimizations.

2006-10-05  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c, engine/jitc_gen.h, engine/jitc_labels.c,
	engine/jitc_locals.c, engine/jitc_stack.c: Start with some code
	reorganization.

	* engine/jitc_except.c: Add return after throwing an OutOfMemoryException
	in _ILJitThrowSystem. Without this return an other erroneous call to
	ILRuntimeExceptionThrowClass was emitted.

	* engine/jitc_ptr.c: Check the array length instead of the array pointer
	in JITCoder_ArrayAccess.

2006-10-04  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c, engine/jitc.h, engine/jitc_call.c: Add support for
	function inlining. Enable inlining of Get, Set and Address methods of
	complex arrays (multidimensional or not zero based).

	* engine/jitc_array.c: Added

	* engine/Makefile.am: Add jitc_array.c to the jit coder sources.

2006-10-01  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Implement _ILDumpMethodProfile and add the signature for
	ILInterlockedIncrement.

	* engine/jitc_call.c, engine/jitc_setup.c: Emit the code for method
	profiling on entry of a function or inlined calling of internal functions
	and pinvokes.

	* engine/jitc_profile.c: Added for profiling functions.

	* engine/Makefile.am: Add jitc_profile.c to jit coder sources.

2006-09-25  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* engine/jitc_pinvoke.c: Add missing jump target for the case that the
	array to be marshalled is null.

2006-09-24  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* engine/jitc_pinvoke.c, engine/jitc.c:
	Improve multicast delegates handling.
	- Handle delegates and multicast delegates differently, that is,
	with a direct call to the delegate method or with a use of
	__ILJitDelegateInvokeCodeGen respectivaly.
	- Improve marshaling to/from Ansi/UTF8/UTF16 strings using the pinvoke
	record and the ILPInvokeGetMarshalType function.
	- Allow extended marshaling of simple arrays for complex types and
	strings if defined USE_BYREF_MARSHALING (default is set to 0).
	- Implement handling of strings, which are embedded in structures or
	simple arrays (needed for gtk#/sample/testdnd.exe).
	- Improve recursive marshaling of arrays and structures by handling the
	IL_META_MARSHAL_DIRECT flag and the NeedMarshalValue methods.
	- Introduce handling of the IL_META_MARSHAL_CUSTOM flag with two new
	MarshalCustomToObject and MarshalObjectToCustom methods which are used
	for objects that support custom marshaling.
	- Support marshaling for the case when the methods are compiled with
	IL_JIT_THREAD_IN_SIGNATURE undefined.

	* engine/jitc_pinvoke.c, engine/jitc_call.c: Inline marshaling
	code, which embed a call to the external native method directly in
	the body of the build function - if undefined _IL_JIT_ENABLE_DEBUG (if
	it is defined we call a stub method).

	* engine/jitc_pinvoke.c, engine/jitc.c, engine/jitc.h,
	engine/lib_marshal.c: Changed the ILJitDelegateGetClosure signature.
	Removed the thread from the first input argument in this method.
	The current thread is handled in the delegate code with
	_ILJitFunctionGetThread.

2006-09-17  Radek Polak  <psonek2@seznam.cz>

	* engine/engine.h: add ILWatch struct for keeping information about
	local variable. Thread has now watchStack that contains watches for
	local variables. The watchStack is handled similar way to frameStack.

	* engine/thread.c: implement allocation and freeing of watches.

	* engine/jitc.h: define values used in data1 when marking breakpoints.

	* engine/jitc_call.c: mark method leave before return from function.

	* engine/jitc_locals.c: make every local variable addresable and
	volatile and mark breakpoint with variable's offset.

	* engine/jitc_setup.c: move static constructor once-call-check at the
	beginig before params and locals are created. Mark method enter
	breakpoint.

	* engine/jitc.c: handle method enter, method leave and offsets for
	local variables in debug hook.

	* engine/debugger.c: show_locals command can now display local
	variables with jit coder. Works only for strings and integers.

	* engine/ilrun.c: swap -g and -G debug options. This is more consistent
	with cscc and it is more comfortable for user.

2006-09-16  Klaus Treichel  <ktreichel@web.de>

	* engine/call.c: Move the currentException to the thrownException after a
	call to a jitted function so that the exception is propagated across native
	calls.

	* engine/jitc.c, engine/jitc_except.c: Move the thrownException in the
	thread to the currentException if an exception is thrown. The
	currentException is used only to prevent a collection of the exception
	object by the gc.

	* engine/lib_gc.c: Readd the ILGCFreePersistent of the handletable.

2006-09-04  Klaus treichel  <ktreichel@web.de>

	* support/pt_defs.c: Add a default mutex attribute to make sure that fast
	(deadlocking) mutexes are used. Initialize this mutex attribute during
	initialization of threading.

	* support/pt_defs.h: Add an extern declaration of the new mutex attribute
	and replace the 0 mutex attribute in pthread_mutex_init with a reference
	to the new created attribute.

	* engine/lib_gc.c: Add a separate mutex in the gc handletable to
	syncronize the access to this table instead of using the process->lock
	mutex (which caused deadlocks if finalizers are invoked).
	We use the process->lock only for the creation of the table and disable
	/enable finalizers at this point.

2006-09-04  Radek Polak	<psonek2@seznam.cz>

	* engine/debugger.c: reformat with tabs set to 4, implemented
	show_stack_trace command for JIT engine, next command uses stack trace
	height, next command leaves functions correctly, removed unused
	debugger functions.

	* engine/debugger.h: reformat with tabs set to 4, remember stack trace
	height and jit stack trace in debugger thread info.

	* include/il_debugger.h: remove unused code.

	* engine/jitc.h, engine/jitc.c: function for getting jit context.

2006-08-31  Klaus Treichel  <ktreichel@web.de>

	* engine/lib_thread.c: Set the exception handler which converts builtin
	libjit exceptions into clr exceptions.

2006-08-30  Radek Polak  <psonek2@seznam.cz>

	* engine/cvmc_setup.c, engine/jitc_setup: Set coder->markBreakpoints
	flag.

	* engine/cvmc.c: Mark breakpoints only when needed.
	
	* engine/jitc.c, engine/jitc.h, engine/verify.c: Moved marking
	breakpints to coder's MarkBytecode() function.

	* engine/lib_diag.c: Reformated function (tabs instead of spaces).

	* engine/debugger.c: Fix warnings, implement show_stack_trace command
	for CVM engine, fix inserting breakpoints in ctors, correctly exit
	debugged application when connection to debugger breaks.

2006-08-25  Klaus Treichel  <ktreichel@web.de>

	* support/spawn.c: Define _WAIT_CHILD as WAIT_CHILD on windows if
	_WAIT_CHILD is not defined. This fixes the build on cygwin.

2006-08-25  Yan Burman  <yan_952@hotmail.com>

	* support/socket.c: Use IPPROTO_TCP and IPPROTO_UDP instead of the 
	SOL_* macros. (patch #5323, Gopal)

	* cscc/common/cc_main.c: get exit codes from _cwait. (patch #5326, Gopal)

2006-08-24  Klaus treichel  <ktreichel@web.de>

	* engine/debugger.c: Wrap the #include <unistd.h> in #ifdef HAVE_UNISTD_H
	... #endif to fix a build problem on mingw.

2006-08-22  Yan Burman  <yan_952@hotmail.com>

	* support/spawn.c, cscc/common/cc_main.c: Uses windows "posix" stuff
	to spawn new process after redirecting its output through a pipe.
	(patch #5321, Gopal)

2006-08-20  Radek Polak  <psonek2@seznam.cz>

	* engine/debugger.h: expose IsMethodImageWatched() so that coder
	can insert breakpoints only in watched assemblies.

	* engine/debugger.c: return IL_HOOK_ABORT when connection with frontend
	breaks.

	* engine/engine.h: add variable for current IL offset in exec thread.
	This variable is updated when debugger breaks.

	* engine/jitc.c: implement jit debugging hook function.

	* engine/jitc.h: expose function for marking breakpoits.

	* engine/lib_diag.c: properly handle debugger break for jit engine.

	* engine/verify.c: mark breakpoints before every IL instruction when
	debugger is attached (applies only for jit engine).

2006-08-14  Marcus Urban  <murban@warpspeed1.net>

	* csant/csant_cscc.c: Change csant to emit csc-style flags in several
	cases for mcs. (patch #4720, Klaus)

2006-08-01  Gopal V  <gopalv82@yahoo.com>

	* engine/debugger.c: Fix debugger build on amd64 (IL_BEST_ALIGNMENT)
	for cvm.h.

2006-08-01  Klaus Treichel  <ktreichel@web.de>

	* engine/convert.c: Remove the no longer needed macros for the metadata
	lock and unlock. Disable finalizers during build of a function to prevent
	finalizers trying to build a finalizer function. Fix a compiler warning.

2006-07-28  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Add constants for the System.MissingMethodException,
	System.DllNotFoundException and System.EntrypointNotFoundException thrown
	by the engine. Add support for errorhandling in pinvokes if the shared
	library could not be found or the entrypoint could not be located.

	* engine/jitc_alloc.c: Allocate objects containing no references to managed
	objects with ILGCAllocExplicitelyTyped so that the monitor for the object
	is not prematurely collected.

	* engine/jitc_call.c: Throw a System.MissingMethodException if the vtable
	pointer returned for a virtual or interface call is null.

	* engine/jitc_except.c: Add the System.MissingMethodException,
	System.DllNotFoundException and System.EntrypointNotFoundException in
	_ILJitThrowSystem.

	* engine/jitc_pinvoke.c: Throw the right exception if a shared library or
	the entrypoint for a pinvoke could not be found.

2006-07-28  Kaushik Srenevasan  <ksrenev@gmail.com>

	* cscc/csharp/cs_decls.tc: Disallow explicit parameterless constructors
	for structs. (Patch #4800). Disallow initializers for non static members
	in structs. (Patch #4812)

2006-07-22  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* engine/jitc.c: Add additional signatures needed for pinvokes.

	* engine/jitc.h: Add prototype for ILJitDelegateGetClosure.

	* engine/jitc_pinvoke.c: Implement marshalling for pinvokes.

	* engine/lib_marshal.c: Call ILJitDelegateGetClosure if the engine is
	built with the just in time compiler.

2006-07-21  Radek Polak  <psonek2@seznam.cz>

	* engine/debugger.c: New command is_stopped that is used to check if
	execution is currently stopped.

2006-07-18  Heiko Weiss  <heiko.weiss@de.trumpf-laser.com>

	* engine/lib_gc.c: fixed a memory leak

2006-07-17  Klaus Treichel  <ktreichel@web.de>

	* image/class.c: Fix a segfault in InheritsFromValueType if the class name
	is ValueType and no namespaceinformation is present (is a nested type).

2006-07-15  Klaus Treichel  <ktreichel@web.de>

	* engine/lib_object.c: Add a check if _this is null in _IL_Object_GetType
	and throw a NullReferenceException in this case because this might be Null
	for normal calls (non virtual and interface calls).

2006-07-13  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_delegate.c: Fix Delegate.Invoke if the current thread is
	not included in the method's signature.

2006-07-13  Radek Polak  <psonek2@seznam.cz>

	* engine/lib_task.c: Fix working dir on cygwin when starting process.
	cygwin_conv_to_win32_path() function is used for that.

2006-07-11  Radek Polak  <psonek2@seznam.cz>

	* include/il_debugger.h: Added. Contains public debugger definitions.

	* engine/debugger.h: Added. Contains private debugger definitions.

	* engine/debugger.c: Added. IL debugger implementation.

	* configure.in: Added option --with-debugger.

	* engine/Makefile.am: Compile debugger files.

	* engine/dumpconfig.c: Print if debugger support is enabled.

	* engine/engine.h: Add reference to debugger from exec process.

	* engine/ilrun.c: Add and implement debugger options.

2006-07-06  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_delegate.c: Fix a build error if the engine is built without
	the ILExecThread in the method signature. Optimize packing of the delegate
	args for async. execution.

2006-07-03  Aleksey Demakov  <ademakov@gmail.com>

	* engine/jitc.c (_ILJitTypeToStackType): remove the conversion of
	float32 and float64 types to nfloat.

	* engine/jitc_const.c (JITCoder_Constant): create constants of the
	float32 and float64 types as appropriate instead of nfloat.

2006-06-28  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_call.c: Remove the check of the this pointer for non virtual
	method calls (JITCoder_CheckCallNull) because it degrades the overall
	performance too much. The check has to be performed in the methods.

2006-06-27  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_obj.c: Replace jit_insn_add with jit_insn_add_relative when
	loading a field address.

	* engine/jitc_ptr.c: Replace jit_insn_add with jit_insn_add_relative to
	get the pointer to the array data.

2006-06-26  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* engine/jitc_branch.c: Fixed a bug in the JIT_OP_BLE_UN condition code
	in OutputCompare. The bug was causing TestConvertToUInt64 to fail in
	make check.

2006-06-26  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_diag.c: Fix _ILJitGetCallingMethod.
	
2006-06-25  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Add the handling of the managed safepoint flags. Add a
	function to rethrow an existing exception. Add Functions to emit the code
	to be executed before and after a native call is made.

	* engine/jitc_call.c: Call the new functions in jitc.c before and after
	the native calls for inlined calls.

	* engine/jitc_except.c: Add support to handle the ThreadAbortException and
	propagating it (rethrow the exception automatically after it was handled in
	a catch block). Add support for the rethrow instruction.
	
	* engine/thread.c: Move the code to register the libjit exceptionhandler
	from ILThreadRegisterForManagedExecution to _ILThreadSetExecContext so
	that the handler is set correctly for finalizers too.

2006-06-18  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* engine/jitc.c: Add signatures for ILStringToUTF8 and ILStringCreate.
	Move _ILJitCompilePinvoke to jitc_pinvoke.c.

	* engine/jitc_pinvoke.c: Added.

	* engine/Makefile.am: Add jitc_pinvoke.c to the jit coder sources.

2006-06-17  Klaus Treichel  <ktreichel@web.de>

	* engine/cvm.c: Move the globalTraceMutex to system.c. Wrap the rest in
	an #ifdef IL_USE_CVM.

	* engine/cvm_config.h: Add include of il_config.h and wrap the rest in
	an #ifdef IL_USE_CVM.

	* engine/cvm_except.c: Move the functions in the global definitions to
	system.c.

	* engine/cvm_ptr.c: Move the function _ILSystemObjectSetField to system.c.

	* engine/cvmc.c: Wrap the contents in an #ifdef IL_USE_CVM.

	* engine/dumpconfig.c: Add support for dumping the jit configuration.

	* engine/engine.h: Add the prototype of _ILSetExceptionStackTrace.

	* engine/jitc.c: Add stub of _ILDumpMethodProfile.

	* engine/lib_delegate.c: Replace the delegate methods Invoke, BeginInvoke
	and EndInvoke with stubbs when built with the jit coder.

	* engine/Makefile.am: Add system.c to the libILEngine sources.

	* engine/system.c: Added with globals and functions that were in the cvm
	sources and are used globally.

	* engine/unroll.c: Wrap the contents in an #ifdef IL_USE_CVM.

2006-06-16  Klaus Treichel  <ktreichel@web.de>

	* engine/lib_helpers.c: Fix RunClassConstructor. The type is passed by
	value with the jit coder instead of by reference.

2006-06-11  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Add System.IntPtr and System.UIntPtr to the special
	classes because there are fields with these types which do not have
	the internal native element types.

2006-06-10  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Fix problem with not existent pinvokes.

	* engine/jitc_call.c: Add more inlined math functions. Implement the
	CheckCallNull which fixes the failure of the String.Equals runtime test.

2006-06-05  Klaus Treichel  <ktreichel@web.de>

	* engine/call.c: Fix problems with type casting.

	* engine/lib_reflect.c: Fix Bug in Invoke with return values.

2006-06-04  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Move the code generation to handle an exception thrown
	in an internalcall to a separate function.

	* engine/jitc_call.c: Handle the thrown exceptions after inlined
	internalcalls.

	* engine/jitc_delegate.c: Fix a dumb bug in _ILJitDelegateInvokeCodeGen.

	* engine/jitc_obj.c: Add support for RVA static fields and pinvoke static
	fields. Replace jit_insn_add_relative with jit_insn_add.

	* engine/jitc_ptr.c: Replace jit_insn_add_relative with jit_insn_add.

2006-06-03  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Use the on demand compilers for DelegateBeginInvoke and
	DelegateEndInvoke for the corresponding delegate methods. Use the
	ILJitFunction instead of the ILJITCoder in calls to the alloc functions.

	* engine/jitc_alloc.c:  Use the ILJitFunction instead of the ILJITCoder
	in calls to the alloc functions. Call AllocAtomic again because the error
	seemed to be caused by multiple executions of the cctors.

	* engine/jitc_delegate.c: Add the support for the Begin- and EndInvoke
	methods.

	* engine/jitc_call.c, engine/jitc_bj.c: Pass the jit function instead of
	the coder to the alloc functions.

2006-05-28  Aleksey Demakov  <ademakov@gmail.com>

	* engine/jitc_setup.c (JITCoder_Setup): move static ctor once check
	block to the function start so it will be exceuted before any other
	blocks that also could be moved to the start. This prevents the
	corruption of setjmp stack in static constructors with try/catch.

2006-05-27  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Mobe the inclusion of jitc_alloc.c just before
	the one of jitc_delegate.c because we'll need the allocation routines
	there.

	* engine/jitc_alloc.c: As a temporary workaround i'm ding a ILGCAlloc
	instead of an ILGCAllocAtomic now.

	* engine/jitc_except.c: Fix a valgrind warning.

2006-05-25  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Add signatures for inlined internalcalls. Add output of
	debugging infos in the on demand compiler for pinvokes. Clean up the
	source.

	* engine/jitc_call.c: Add the inlined calls needed for the synchronized
	classes.

	* engine/jitc_delegate.c: Add the output of debugging infos in the on
	demand compilers.
	
2006-05-18  Klaus Treichel  <ktreichel@web.de>

	* engine/Makefile.am: Add jitc_delegate.c to the jit coder sources.

	* engine/layout.c: Replace the direct access of method->userdata with a
	function call of ILJitFunctionFromILMethod.

	* engine/jitc.h: Add the declaration of the delegate types and change the
	ILJitTypes.

	* engine/jitc.c: Redo lots of the the jit function creation.

	* engine/jitc_call.c: Changed calls to _ILJitCreateMethodSignature and
	replace the direct access of method->userdata with a call of
	ILJitFunctionFromILMethod.

	* engine/jitc_setup.c: Replace the direct access of method->userdata with a
	function call of ILJitFunctionFromILMethod.

	* engine/jitc_delegate.c: Added.

2006-05-01  Klaus Treichel  <ktreichel@web.de>

	* engine/call.c: Add support for the thread not included in the signature.

	* engine/jitc.c, engine/jitc.h, engine/jitc_alloc.c, engine/jitc_arith.c,
	engine/jitc_call.c, engine/jitc_except.c, engine/jitc_locals.c,
	engine/jitc_obj.c, engine/jitc_ptr.c, engine/jitc_setup.c: Add support for
	the thread not included in the signature. Remove as many thread accesses as
	possible. Add more exception support. Fix Bugs and improve performance.

	* engine/lib_defs.h: Add declaration of the ECMA specific part of the
	System.Exception class.

2006-04-17  Klaus Treichel  <ktreichel@web.de>

	* engine/Makefile.am: Add jitc_alloc.c to jitc.o sources.

	* engine/jitc_alloc.c: Add object allocation functions.

	* engine/jitc.c, engine/jitc_call.c, engine/jitc_conv.c,
	engine/jitc_labels.c, engine/jitc_locals.c, engine/jitc_obj.c,
	engine/jitc_ptr.c, engine/jitc_setup.c, engine/jitc_var.c: Replace the
	calls of EngineAlloc with calls to the new allocation functions.
	Add initialization of locals. Redo the value conversion.

2006-04-10  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_ptr.c: Do some optimizations in the array index verification
	(converting the array length and index to unsigned saves one comparision
	and jump). Inline the internal call in NewArray.

2006-04-09  Klaus Treichel  <ktreichel@weblde>

	* engine/jitc.c, engine/jitc_conv.c: Fix bugs in type conversion.

2006-03-25  Klaus Treichel  <ktreichel@web.de>

	* enjine/jitc_obj.c: Fix a bug in ILJITCoder_CastClass that caused a
	segfault in IsInst when the object to cast was null.

	* engine/jitc.c, engine/jitc_call.c: Call internal fuctions now directly
	for normal calls and ctors.
	
2006-03-19  Rainer Grlinger  <rainer.groesslinger@gmx.net>

	* libgc/Makefile.am, libgc/Makefile.direct, libgc/Makefile.in,
	libgc/allchblk.c, libgc/alloc.c, libgc/configure, libgc/configure.in,
	libgc/darwin_stop_world.c, libgc/dbg_mlc.c, libgc/dyn_load.c,
	libgc/headers.c, libgc/malloc.c, libgc/mark.c, libgc/misc.c,
	libgc/mkinstalldirs, libgc/os_dep.c, libgc/powerpc_darwin_mach_dep.s,
	libgc/pthread_stop_world.c, libgc/pthread_support.c, libgc/threadlibs.c,
	libgc/version.h, libgc/doc/README, libgc/doc/README.changes,
	libgc/doc/gcinterface.html, libgc/include/gc.h,
	libgc/include/gc_config_macros.h, libgc/include/gc_cpp.h,
	libgc/include/gc_pthread_redirects.h, libgc/include/leak_detector.h,
	libgc/include/private/gc_locks.h, libgc/include/private/gc_pmark.h,
	libgc/include/private/gc_priv.h, libgc/include/private/gcconfig.h: Update
	to libgc 6.7. (Klaus)

2006-03-19  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Add signature for _ILJitGetExceptionStackTrace. Pass
	structs by ref in _ILJitCompileInternal. Include the new files jitc_diag.c
	and jitc_labels.c. Move _ILJitGetCallingMethod to jitc_diag.c.

	* engine/jitc.h: Add the prototypes for the new functions in jitc_diag.c
	and include lib_defs.h.

	* engine/jitc_branch.c: Move the stack management functions to
	jitc_labels.c and rename GetLabel to _ILJitLabelGet and FindLabel to
	_ILJitLabelFind.

	* engine/jitc_except.c: Add support for filling the stack trace in the
	exception object and rename GetLabel to _ILJitLabelGet and FindLabel to
	_ILJitLabelFind. Fix a bug in the exception catcher.
 
	* engine/jitc_ptr.c: Fix getting the base of the array data.

	* engine/jitc_setup.c: Dump the functions only when argument -Z was passed
	to ilrun. Add a label for offset 0 at the start of the function to fix an
	exception bug.

	* engine/lib_diag.c: Add some stack support for the jit coder.

	* engine/Makefile.am: Add jitc_diag.c and jitc_labels.c as jitc sources.

	* engine/jitc_diag.c, engine/jitc_labels.c: Added.

2006-03-17  Klaus Treichel  <ktreichel@web.de>

	* engine/lib_gc.c : fixed weak references

2006-03-12  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Add the exceptionhandler and some exception stuff.

	* engine/jitc.h: Add the prototype for the exceptionhandler.

	* engine/jitc_branch.c, engine/jitc_except.c: Add some exception stuff.

	* engine/thread.c: Register the exceptionhandler for the thread when the
	thread is registered for managed execution.

	Thanks krokas for the help.

2006-03-11  Klaus Treichel  <ktreichel@web.de>

	* configure.in: Add new configure switch --with-cvm which defines
	IL_USE_CVM. The cvm coder is used by default. Disable libffi when using the
	jit coder.

2006-03-09  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Allocate one more arg for the pointer to the return struct
	in _ILJitCompileInternal.

2006-03-08  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Add the new locals management and include jitc_locals.c.
	Fix a problem in ILJitCompileInternal when a struct is returned.

	* engine/jitc_branch.c: Replace locals on the stack with copies when the
	stach state is saved. Reset the NullChecked flag when a label 
	(branch target) is inserted.

	* engine/jitc_call.c: Add suppport of argument packing in an object array.

	* engine/jitc_locals.c: Added.

	* engine/jitc_obj.c: Use the new locals / parameter management in
	jitc_locals.c and replace calls of jit_insn_check_null with calls of
	_ILJitCheckNull.

	* engine/jitc_ptr.c: Replace calls of jit_insn_check_null with calls of
	_ILJitCheckNull.

	* engine/jitc_setup.c: Use the new locals / parameter management in
	jitc_locals.c.

	* engine/jitc_stack.c: Start with some basic optimizations to avoid
	duplicating values.

	* engine/jitc_var.c: Use the functions in jitc_locals to accedd the locals
	and parameters. Start with some basic optimizations.

	* engine/Makefile.am: Add jitc_locals.c to the jitc dependencies.

2006-03-04  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c, engine/jitc_obj.c: Fix the TypedRef so that the layout of
	the ILTypedRefstructure is used. Fix jit type resolution of
	IL_META_ELEMTYPE_TYPEDREF.

	* engine/jitc_call.c: Fix the constructor call for multidimensional arrays.

	* engine/layout.c: Use IL_META_ELEMTYPE_PTR instead of
	IL_META_ELEMTYPE_TYPEDREF for pointer/reference types (what was obviously a
	bug).

	* engine/lib_array.c: use varargs for multidimensional arrays when the jit
	is used.

	* engine/verify.c: Do the stackrefresh before the label is inserted when the
	jit is used.

2006-02-27  Aleksey Demakov  <ademakov@gmail.com>

	* engine/jitc_conv.c (JITCoder_Conv): fix a typo.

	* engine/jitc_arith.c (JITCoder_Binary): use AdjustMixedBinary
	for arithmetic ops.
	* engine/jitc_branch.c, engine/jitc.c (AdjustMixedBinary): moved
	AdjustMixedBinary from jitc_branch.c to jitc.c. Bail out on floating
	point values.

2006-02-26  Klaus Treichel  <ktreichel@web.de>

	* engine/call.c: add an additional slot in the arg buffer for ctors. Return
	1 when an exception was thrown in _ILCallMethod.

	* engine/jitc.c, engine/lib_reflect.c: Make _ILJitGetCallingMethod more
	portable.

2006-02-25  Klaus Treichel  <ktreichel@web.de>

	* engine/call.c: Return the this pointer for ctor calls in ILCallMethod and
	use _ILLayoutClassReturn to obtain the size of the object to create instead
	of ILSizeOfType.

	* engine/jitc.c: Exchange the return values in ILJitCallMethod to 0 for
	failure and 1 for success.

	* engine/lib_reflect.c: Increase the number of callframes by one to look
	for in _IL_Assembly_GetCallingAssembly and
	_IL_Assembly_GetExecutingAssembly.

2006-02-23  Gopal V  <gopalv82@yahoo.com>

	* support/serial.c, support/il_serial.h: add IL_SERIAL_RFCOMM and
	generate /dev/rfcomm<n> devices for it.

2006-02-22  Klaus Treichel  <ktreichel@web.de>

	* engine/call.c: Pass the size of the type to _ILEngineAlloc and fix a bug
	in packing the args.

	* engine/engine.h: Adjust the prototypes for the arg packing functions.

2006-02-21  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Fix a bug in creating the jit types. Enum types must be
	converted to their underlying type.

	* engine/lib_reflect.c: Field- and Method handles are passed by value and
	not by reference in jitted code.

2006-02-20  Russell Stuart  <russell-savannah@stuart.id.au>

	* minor re-work of build-debian-packages.

2006-02-19  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Add Function to emit code for throwing jit internal
	exceptions. Add members in the ILJITLabel to record the labels stackstate.
	Add member in the jit coder to record the current switch value. Implement
	_ILJitGetCallingMethod.

	* engine/jitc.h: Add prototype for _ILJitGetCallingMethod.

	* engine/jitc_branch.c: Add changes to record the stack state for the label.
	Change the branch and switch functions so that the GetLabel function is
	called when the stack is in the state after the branch.

	* engine/jitc_call.c: Implement the ldftn and ldvirtftn opcodes.

	* engine/jitc_obj.c: Add support for thread static members.

	* engine/jitc_ptr.c: Add throwing of the IndexOutOfRange exception.

	* engine/jitc_setup.c: Add intialization and destruction of the label
	stackstates MemStack.

	* engine/jitc_stack.c: Duplicate the value on the dup instruction now
	because the duplicated value might be modified and this must not affect
	the original value.

	* engine/lib_reflect.c: Set error to LoadError_OK in Assemble_LoadFromName
	when loading is successfull. Add support for the jit coder in
	GetCallingAssembly and GetExecutingAssembly.

2006-02-13  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_const.c: Fix a bug with negative small constants (> -128).
	(Thanks krokas for finding this bug.)

2006-02-12  Klaus Treichel  <ktreichel@web.de>

	* engine/call.c: Fix a build problem on 64 bit platforms with libjit
	enabled.

	* engine/jitc_except.c: Enable the calling of finally sections.

2006-02-10  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_var.c: Duplicate the local/argument before pushing it on the
	evaluation stack because the local/argument might be modified before the
	item on the. evaluation stack is used. (Thanks krokas for finding this bug.)

2006-02-08  Klaus Treichel  <ktreichel@web.de>

	* configure.in: Fix include and library paths in the search paths for
	libjit.

2006-02-08  Boris Manojlovic  <boris.manojlovic@gmail.com>

	* configure.in: Add /usr and /usr/local to the search
	paths of libjit. (patch #4767, Gopal)

2006-02-05  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.h: Add jit function metadata index IL_JIT_META_METHODNAME for
	the complete methodname.

	* engine/jitc.c: Fix a bug in the ALLOC_STACK macro. Add support for
	setting and getting the methodname in/from the jit functions metadata.
	Add the function names to the native calls for debugging purposes.

	* engine/jitc_call.c: Add the function names to native calls for debugging
	purposes. Add the complete method name to the jit_insn_call.

	* engine/jitc_obj.c: Add function names to the native calls. Add some
	debugging output when ilrun is invoked with -Z.

	* engine/jitc_setup.c: Add the dumping of the jitted methods in
	JITCoder_Finish.

	* engine/lib_helpers.c: In the jitted code the handle is passed by value
	and not by reference in _IL_RuntimeHelpers_InitializeArray. Removed the
	check of the callers image because the stack methods are not done yet.

2006-02-03  Peter Flaig  <Peter.Flaig@de.trumpf-laser.com>

	* support/time.c: fixed getting offset to UTC time if timezone was changed

2006-01-28  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Add the functions _ILJitGetSizeOfClass for the ctors and
	_ILJitGetTypeFromClass for the ValueCtorArgs. Add definitions for the two
	label types (normal and startfinally). Add labelType to ILJitLabel and
	isInCatcher in ILJITCoder. Change the type resolution so that
	_IL_JIT_TYPE_VPTR is returned for object references and pointers to avoid
	recursive class layouting because this messed up the vtables. (We might need
	a better solution because it could still happen.) Add some debug code that
	is printed when ilrun is started with -Z.

	* engine/jitc_branch.c Add support for the different label types. With
	_IL_JIT_LABEL_FINALLY a finally subroutine is started instead of inserting
	a label. Add some debug code that is printed when ilrun is started with -Z.

	* engine/jitc_call.c: Pass the object size instead of 0 to _ILEngineAlloc
	and set the call type to JIT_CALL_NOTHROW. Implement the ValueCtorArgs.
	Set the number of parameters to argCount + 1 in vtable- and interface calls.
	Reset the method in the current ILExecThread on return from a function.
	Make sure that the returned value is pushed on the stack as a stack type.
	Add some debug code that is printed when ilrun is started with -Z.
	
	* engine/jitc_const.c: Change the constant load to match the cvmc coder.

	* engine/jitc_except.c: Add some debug code that is printed when ilrun is
	started with -Z. Add creation of the finally labels in setup exceptions.
	Add the returning from a finally clause. Add some exception support for
	debugging.

	* engine/jitc_obj.c: Set parameter isCtor to 1 in the calls to
	_ILJitCallStaticConstructor on access of a static field.

	* engine/jitc_setup.c: Add two stack items to handle the ValueCtorArgs
	items and initialize the isInCatcher flag in JITCoder_Setup.

	* engine/lib_type.c: Handles are passed on the stack instead of a pointer
	to the handle when jitting.

2006-01-18  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_call.c, engine/jitc_obj.c, engine/jitc_setup.c,
	engine/jitc_var.c: Fix a bug in JITCoder_LoadThisField and add trace output
	in various coder functions. (can be activated with the -Z switch).

2006-01-17  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_obj.c: Adjust evaluationstack in JITCoder_CopyObject with -2
	instead of -3.

2006-01.15  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_obj.c: Add the rest of the opcodes. (thanks_terminus_)
	
2006-01-15  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* engine/jitc.c: Add jit type for typed references.

	* engine/jitc_obj.c: Implement boxing and the typed reference opcodes.

2006-01-15  Rhys Weatherley  <rweather@southern-storm.com.au>

	* NEWS, configure.in: update version for the "0.7.4" release.

	* configure.in: update working version to "0.7.5".

2006-01-12  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_obj.c: Fix JITCoder_CastClass.

2006-01-09  Klaus Treichel  <ktreichel@web.de>

	* engine/engine.h: Add jitVtable (vtable pointers for jit functions) and
	change imt do void ** (vtable pointers for jit interface functions) in the
	classPrivate data.

	* engine/layout.c: Add the management of the jit vtables and optimize the
	creation of overriding virtual functuins so that they use the signature of
	the ancestor.

	* engine/jitc.h: Add some prototypes.

	* engine/jitc.c, engine/jitc_call.c: Add more functionality for calls.

	* engine/jitc_const.c: Add support for pushing a string token on the
	evaluation stack.

	* engine/jitc_setup.c: Add support for static constructors so that they are
	not executed more than once.

	* engine/jitc_obj.c: Fix a bug in PushToken (Value was not pushed on the
	stack).

2006-01-07  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* engine/jitc.c, engine/jitc_branch.c: Implement support for the switch
	instruction.

2006-01-06  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c: Add some helper functions for jitc_obj.c

	* engine/jitc_var.c: Clean up the code a bit.

	* engine/jitc_obj.c: Implement CastClass/IsInst.

2006-01-06  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c, engine/jitc_ptr.c: Clean up the code a bit and fix a bug
	in stelem where a conversion to the array type was missing.

2006-01-05  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c, engine/jitc_ptr.c, engine/jitc_setup.c: Make some minor
	changes needed for jitc_call.c

	* engine/jitc_call.c: Add constructor-, normal- and virtual calls.
	(thanks krokas).

2006-01-04  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c, engine/jitc.h, engine/jitc_branch.c, engine/jitc_conv.c,
	engine/jitc_ptr.c: Implement the type conversion opcodes, the array stuff
	and some other pointer related opcodes.

2006-01-02  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_stack.c: Implement JITCoder_StackRefresh.

2005-12-31  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_setup.c: Reset the labellist in ILJITCoder_Finish.

	* engine/jitc_var.c: Implement the rest of the instructions.

2005-12-31  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* engine/jitc_arith.c: Implement first version of the arithmetic functions.

2005-12-31  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc_branch.c: switch value1 and value2 in the jit_insn_ compare
	statements to get the correct results.

	* engine/jitc_call.c: Add the return statement. (thanks Kirill.)

2005-12-30  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* engine/jitc_var.c: Start with load/store params and locals.

2005-12-30  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c, engine/jitc.h, engine/jitc_branch.c: Add compare and
	branch instructions.

2005-12-29  Klaus Treichel  <ktreichel@web.de>

	* engine/convert.c: Add a version of ConvertMethod for use with the jit
	coder.

	* engine/call.c: Add the ILExecThread as param 1 to the call of
	ILJitCallMethod.

	* engine/jitc.c: Add layouting of a class when necessary when a native call
	from the engine is done.

	* engine/jitc.h: Add the ILExecTread as parameter 1 in ILJitCallMethod.

	* engine/jitc_const.c: Fill in the code generation.

	* engine/jitc_setup.c: Return IL_CODER_END_OK in JITCoder_Finish instead of
	1.

	* engine/jitc_stack.c: Implement pop and dup.

	* engine/jitc_gen.h: Added code generation helper macros.

2005-12-28  Klaus Treichel  <ktreichel@web.de>

	* engine/call.c: Fix that the constructors of array and string classes
	don't get the this parameter.

	* engine/jitc.c: Fix the same problem as in call.c and fix the return type
	of constructors.

2005-12-27  Klaus Treichel  <ktreichel@web.de>

	* engine/call.c: implement _ILCallPackVaParams, _ILCallPackVParams and
	_ILCallMethod for the jit coder.

	* engine/engine.h: add the prototypes for _ILCallPackVaParams and
	_ILCallPackVParams and the definition of ILCallPackFunc for the jit coder.

	* engine/jitc.c, engine/jitc.h, engine/jit_call.h: add some more work on the
	jit coder.

2005-12-24  Klaus Treichel  <ktreichel@web.de>

	* engine/jitc.c, engine/jitc_setup.c: Add some more work on the jit coder.

2005-12-23  Marc Haisenko <marc@darkdust.net>

	* engine/cvm_call.c: Don't count method calls if enhanced profiler is
	activated but not enabled (e.g. -M is given but -E is not). Also fixed
	time measurement (VMCASE(COP_RETURN), credits go to Tim Nichols
	<timnichols@mac.com> for sending this fix.

	* engine/ilrun.c: Give hint on enabling profiling in "method profiles
	are not available" error message

	* README.profiling: Updated the profiling README to explain the new
	behaviour.

2005-12-23  Klaus Treichel  <ktreichel@web.de>

	* image/link.c: Add missing colon after /usr/lib64 for AMD64 systems so
	that libs in /usr/lib64 can be found (thanks marcusU).

2005-12-22  Klaus Treichel  <ktreichel@web.de>

	* engine/process.c: Init JitCoder when IL_USE_JIT is defined.

	* engine/layout.c: Add the generation of jit function stubs for each
	layouted class.

	* engine/jit.c, engine/jit.h: Add generation of function stubs and start the
	on demand compiler function.

2005-12-19  Klaus Treichel  <ktreichel@web.de>

	* configure.in: add switch --enable-jit for enabling the jit coder.

	* engine/Makefile.am: add the new jit coder sources to build.

	* engine/engine.c, engine/engine.h, engine/layout.c: add first changes for
	the jit coder (mainly classlayout).

	* engine/jitc.c, engine/jitc.h, engine/jitc_arith.c, engine/jitc_branch.c,
	engine/jitc_call.c, engine/jitc_const.c, engine/jitc_conv.c,
	engine/jitc_except.c, engine/jitc_obj.c, engine/jitc_ptr.c,
	engine/jitc_setup.c, engine/jitc_stack.c, engine/jitc_var.c: Stub the first
	files for the jit coder (thanks radekp).

2005-12-19  Klaus Treichel  <ktreichel@web.de>

	* libffi/ChangeLog, libffi/src/powerpc/linux64.S, libffi/src/powerpc/ffi.c:
	update to current libffi.

2005-12-15  Gopal V  <gopalv82@yahoo.com>

	* engine/unroll.c: Missed a line in last commit.

2005-12-14  Gopal V  <gopalv82@yahoo.com>

	* engine/unroll.c: Flip the order of the remainder operands
	on AMD64, as it uses x87 fp ordering for fprem.

2005-12-10  Deryk Robosson  <deryk@0x0a.com>

	* libgc/include/Makefile, libgc/doc/Makefile: Removed.  They're
	generated automatically. (bug #15119).

2005-12-08  Gopal V  <gopalv82@yahoo.com>

	* engine/md_amd64.h, engine/md_amd64.c: AMD64 fpu unrollers.

	* engine/unroll.c, engine/unroll_ptr.c: Remove the NATIVE_MASK
	on the reg2 in GetFPAndWordRegisters before returning. Remove
	debug code in 2D array code.

2005-12-04  Gopal V  <gopalv82@yahoo.com>

	* engine/dumpconfig.c, engine/md_amd64.h: Fix ilrun -D and 
	enable integer division on AMD64/EM64T.

2005-12-03  Klaus Treichel  <ktreichel@web.de>

	* engine/verify_call.c: Fix verification error when inlining an instance
	getter that returns a static field.
	
2005-12-03  Radek Polak  <psonek2@seznam.cz>

	* engine/lib_task.c, engine/int_proto.h, engine/int_table.c: Fix
	Process.Start so that it uses the current working dir. (Bug# 15098, Klaus)

2005-11-25  Gopal V  <gopalv82@yahoo.com>

	* engine/layout.c: resolve the parent classes with ILGetParentClass,
	for cross-assembly relationships.
	
	* engine/layout.c: Do not fill in IMT tables for abstract classes.

2005-11-21  Gopal V  <gopalv82@yahoo.com>

	* configure.in, support/spawn.c: use response files
	if arguments exceed 8192 bytes (bug #12797)

	* engine/cvm_inline.c: Minor tweaks on the string
	equality function, favouring interned strings.

	* engine/unroll_arith.c: Integer division operations for
	AMD64/EM64T.

	* engine/unroll_var.c: copy the entire CVMWord while
	doing a dup, not just a single ILNativeInt off the
	stack.

	* engine/layout.c, engine/cvm_call.c: update BuildIMT
	to handle interface implementations fulfilled by parent 
	classes.

	* engine/unroll.c: Fix bug in GetFPAndWordRegisters for
	the case where there is one word on the stack and 
	FP stack is empty.

	* engine/engine.h, engine/layout.c, engine/cvm_call.c:
	Add IL_DEBUG_IMTS flags to debug IMT bugs easily.
	
2005-11-16  Gopal V  <gopalv82@yahoo.com>

	* engine/cvm.c: Insert a dummy cgoto to ensure that
	the compiler register allocator picks up the jump
	in -O3

2005-11-01  Peter Fristedt  <belial@belial.com>

	* engine/cvm.c: add volatile definitions for gcc4 on powerpc. (Klaus)

2005-11-14  Gopal V  <gopalv82@yahoo.com>

	* engine/amd64_codegen.h, engine/unroll_ptr.c: 2D arrays
	and fix for ReExecute segfault.

2005-11-13  Gopal V  <gopalv82@yahoo.com>

	* engine/md_amd64.c, engine/md_amd64.h, engine/unroll_ptr.c,
	engine/cvm_config.h: All basic opcodes for AMD64 are now 
	working, turned on unrolled mode by default for AMD64.

2005-11-08  Thong Nguyen  <tum@veridicus.com>

	* engine/lib_monitor.c: Updated _IL_Monitor_InternalWait comments
	to clarify what happens when Monitor.Wait times out.

2005-11-06  Klaus Treichel  <ktreichel@web.de>

	* engine/lib_monitor.c: return 0 in _IL_Monitor_InternalWait when the
	timeout expired before the lock could be aquired.

	* support/hb_gc.c: fix a warning because of a difference in signedness.

	* support/thread.c: replace the suspend / resume in ILThreadStart /
	_ILThreadRun by a lock and release of the new threads lock mutex to
	wait until ILStartThread has finished it's housekeeping. This fixes
	problems on cygwin and MAC OSX where the resume got lost and the new
	thread.didn't start.

2005-11-03  Gopal V  <gopalv82@yahoo.com>

	* engine/md_amd64.h, engine/md_amd64.c: conditionals, compares
	and shift operations for AMD64.

2005-11-01  Peter Fristedt  <belial@belial.com>

	* configure.in: add check for mac osx darwin thread support.

	* support/pt_defs.h, support/thr_choose.h: add mac osx threading support.
	(patch, Klaus)

2005-10-29  Peter Fristedt  <belial@belial.com>

	* engine/lib_reflect.c: allow modification of init only fields through
	reflection (like in mono or ms) when IL_CONFIG_ECMA is set to n in the
	profile.

	* profiles/compact, profiles/compact-fp, profiles/full, profiles/full-tl,
	profiles/kernel, profiles/kernel-fp, profiles/tiny: add IL_CONFIG_ECMA
	switch (bug #14876, Klaus).

2005-10-19  Jason Clouse  <jhcclouse@charter.net>

	* cscc/csharp/cs_misc.cs: allow sizeof(primitive type) in safe code.
	(Patch #4526, Klaus).

2005-10-19  Klaus Treichel  <ktreichel@web.de>

	* libgc/pthread_support.c: Add missing condition around the call of
	GC_init_thread_local in GC_register_current_thread.

2005-10-18  Klaus Treichel  <ktreichel@web.de>

	* engine/cvm.c: Add macros depending on the arch to declare the
	interpreter globals volatile and add the macros to the variable
	declarations.

	* engine/cvm_call.c, engine/cvm_ptr.c: Add the macros to the variable
	declarations.

	* engine/layout.c: make classPrivate in LayoutClass volatile to avoid
	possible gc problems. Move the adding of classPrivate to the linked list
	of classes in the process to the end of LayoutClass.

2005-10-16  Klaus Treichel  <ktreichel@web.de>

	* engine/cvm.c: mark pc volatile.

2005-10-15  Klaus Treichel  <ktreichel@web.de>

	* engine/cvm.h: mark members intValue, uintValue and ptrValue of CVMWord
	volatile.

	* engine/cvm.c: mark stackmax and method in _ILCVMInterpreter volatile.

	* engine/cvm_arith.c: add volatile to first arg of static functions to
	avoid warnings.

	* engine/cvm_call.c: add a cast to the last arg in the call to
	_ILPackCVMStackArgs to avoid a warning.

	* engine/cvm_ptr.c: mark tempptr volatile.
	(All changes are to build the engine with gcc4 without optimizations.
	This is the first step. There seems to be still an issue with exceptions.)

2005-10-13  Heiko Weiss <heiko.weiss@de.trumpf-laser.com>

	* engine/lib_info.c: GetNetBIOSMachineName fixed

2005-10-10  Klaus Treichel  <ktreichel@web.de>

	* libgc/include/gc.h: Add prototypes for GC_run_thread.

	* libgc/pthread_support.c, libgc/win32_threads.c: Add function
	GC_run_thread.

	* libgc/solaris_threads.c: Stubb out function GC_run_thread.

	* include/il_thread.c: Add prototype for ILThreadRunSelf.

	* engine/engine.h: Add support for ILExecThreads to switch appdomains.

	* engine/pinvoke.c: Add support in DelegateInvoke to exeute managed code
	in non pnet threads.

	* engine/thread.c: Add support for ILExecThreads to switch between
	appdomains.

	* support/thr_defs.h: Add prototype for _ILThreadInitHandleSelf.

	* support/thread.c: Add function ILThreadRunSelf to run a function under
	gc conthol in a thread not created with the gc functions.

	* support/no_defs.c, support/w32_defs.c, support/pt_defs.c: Add function
	_ILThreadInitHandleSelf to initialize the threads in an ILThread for the
	current thread.

2005-10-04  Gopal V  <gopalv82@yahoo.com>

	* engine/amd64_codegen.h, engine/md_amd64.c, engine/md_amd64.h,
	engine/unroll.c, engine/cvm_config.h: Check in parts of the 
	unroller for x86_64 (AMD64/EM64T).

	* engine/Makefile.am: dependencies for gen_marshal.h and 
	unroll.c depends on all md_*.h files.

2005-10-01  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* engine/pinvoke.c: Added an error message in case libffi does not support
	closures.
	* engine/lib_delegate.c: Added an error message in case we don't have
	support for creating closures on this system. (patch #4386, Klaus)

2005-09-18  Klaus Treichel  <ktreichel@web.de>

	* libgc/tests/middle.c: added

2005-09-17  Klaus Treichel  <ktreichel@web.de>

	* libgc/Makefile.am, libgc/Makefile.in, libgc/alpha_mach_dep.S,
	libgc/configure, libgc/configure.in, libgc/dyn_load.c, libgc/mach_dep.c,
	libgc/os_dep.c, libgc/pthread_stop_world.c, libgc/pthread_support.c,
	libgc/version.h, libgc/win32_threads.c, libgc/doc/Makefile.in,
	libgc/doc/README, libgc/doc/README.changes, libgc/doc/README.linux,
	libgc/include/Makefile.in, libgc/include/private/gc_priv.h,
	libgc/include/private/gcconfig.h,
	libgc/include/private/pthread_stop_world.h: update to version 6.6

	* libgc/mips_sgi_mach_dep.S: renamed to libgc/mips_sgi_mach_dep.s. 

2005-09-14  Gerd Nick  <gerd.nick@de.trumpf-laser.com>

	* engine/lib_math.c: Fix bug in RoundDouble to generate
	the correct power from the digits (Gopal, bug #14544).

2005-09-12  Russell Stuart  <russell-savannah@stuart.id.au>

	* engine/lib_task.cs: _IL_Process_StartProcess wasn't closing
	the pipe it used to report errno in case of a exec failure in
	the child.

2005-09-09  Peter Flaig  <Peter.Flaig@de.trumpf-laser.com>

	* engine/lib_type.c: GetInterface was not moving back up the tree,
	fixed with patch attached to bug #14476 (patch applied by drobosson).

2005-09-08  Gopal V  <gopalv82@yahoo.com>

	* configure.in: replace '[' chars with corresponding
	quadrigraphs to escape them the m4 way.

	* configure.in: throw away fancy quadrigraphs and use
	old fashioned [[ to escape for backward compatibility.

2005-08-29  Klaus Treichel  <ktreichel@web.de>

	* image/link.c:Change mapping of windows dll names to the names on non
	windows platforms. If the name starts with lib and ends with .dll then
	cut of these parts. Additionally cut off all including the first dash
	following the last point. Use this name for the libary search. Two special
	cases are left: gdk-win32 and gtk-win32 are mapped to gdk-x11 or gtk-x11.
	The real mapping is done through pinvoke.map.

2005-08-23  Klaus Treichel  <ktreichel@web.de>

	* engine/call.c, engine/heap.c, engine/lib_marshal.c, engine/lib_object.c,
	engine/lookup.c:
	Pass process instead of thread to the IL_METADATA_* macros and add process
	as parameter to the call of _ILLayoutClass.

	* engine/convert.c: Pass process instead of thread to the IL_METADATA_*
	macros and add process as parameter to the call of _ILLayoutClass.
	Add process parameter to the _ILMakeCifFor* functions.

	* engine/cvmc.c: Add backpointer to the owning process to ILCVMCoder.
	Add Macro for the cast from ILCoder to ILCVMCoder. Add process parameter
	to the functions GetTypeSize, GetStackTypeSize because they are needed for
	_ILSizeOfTypeLocked now. Add param process to CVMCoder_Create and set the
	backpointer.

	* engine/cvmc_call.c, engine/cvmc_stack.c, engine/cvmc_var.c: Add process
	parameter to the calls of GetTypeSize.

	* engine/cvmc_obj.c, engine/cvmc_ptr.c: Add process parameter to the calls
	of GetTypeSize, GetStackTypeSize and _ILSizeOfTypeLocked.

	* engine/cvmc_setup.c: Add process parameter to the calls of GetTypeSize,
	Add process parameter to CVMEntryAllocExtraLocal and CVMEntryNeedExtraLocal
	and the calls of these static functions.

	* engine/engine.h: Add element firstClassPrivate to ILExecProcess to get
	a list of already created classPrivate objects for the gc. Add backpointer
	to the owning process and the nextClassPrivate pointer for the linked list
	to ILClassPrivate. Add the process parameter to the function prototypes.
	Change the IL_METADATA_ macros so that they require the process instead of
	the thread as parameter. Add macro _ILExecThreadProcess to get the current
	process of a thread.

	* engine/layout.c: Add the class owning process as a parameter to
	LayoutClass, LayoutType, BuildIMT, _ILLayoutClass, _ILSizeOfTypeLocked.
	Remove the finding process in BuildIMT and LayoutClass. Allocate the
	ClassPrivateData collectable instead of uncollectable so that the storage
	will be cleaned up by the gc and the static objects too when the process is
	destroyed. Add maintenance of the linked list in LayoutClass. Change the
	parameter of IL_META_* macro calls from thread to the process.
	
	* engine/lib_delegate.c: Add process parameter to the call of
	_ILMakeClosureForDelegate.
	
	* engine/lib_emit.c, engine/lib_helpers.c: Pass process instead of thread
	to the IL_METADATA_* macros.
	
	* engine/lib_reflect.c:  Pass process instead of thread to the IL_METADATA_*
	macros. Add process parameter to call of _ILMakeClosureForDelegate.

	* engine/null_coder.c: Add process parameter to Coder_Create.

	* engine/pinvoke.c: Add process as additional parameter to the funcions
	PopulateStructFFI, StructToFFI, TypeToFFI and the calls of these functions.
	Add additional process parameter to _ILMakeCifForMethod,
	_ILMakeCifForConstructor and _ILMakeClosureForDelegate.

	* engine/process.c: Pass process to the call of ILCoderCreate.

	* engine/verify_call.c: Add process as additional parameter to
	TryInlineLoad, TryInlineMethod, TryInlineStore, GetMethodToken,
	GetConstructorToken and the calls of these functions ans _ILLayoutClass.

	* engine/verify_obj.c: Add process to the function GetFieldToken. Change
	the first parameter of BoxValue from coder to process and adjust the args
	of the ILCoderBox* calls. Add process as parameter to the calls of
	_ILLayoutClass. _ILSizeOfTypeLocked, GetFieldToken and GetMethodToken.

	* engine/verify_var.c: Add process parameter to call of GetFieldToken.

	* include/il_coder.h: Add process parameter to the prototype of the create
	function and the ILCoderCreate macro.

2005-08-22  Klaus Treichel  <ktreichel@web.de>

	* engine/cvm.c: Replace calls to ILMemCpy in inlined functions with calls
	of IL_MEMCPY (this fixes some segfaults + build problems on x86).

2005-08-22  Klaus Treichel  <ktreichel@web.de>

	* codegen/Makefile.am, cscc/bf/Makefile.am, cscc/c/Makefile.am,
	cscc/common/Makefile.am, cscc/csharp/Makefile.am, cscc/java/Makefile.am,
	engine/Makefile.am, support/Makefile.am: Remove the dist_ and nodist_
	prefixes of the targets and add the nodist_ sources to the normal SOURCES
	because automake 1.4 can't handle them.

2005-08-22  Gopal V  <gopalv82@yahoo.com>

	* image/link.c: add lib64 paths to the default lookup
	path for libraries. This is to ensure the 64bit libraries
	are preferred over 32 bit ones when ilrun is built for 
	x86_64.

2005-08-21  Klaus Treichel  <ktreichel@web.de>

	* Makefile.am: Add config-ml.in to EXTRA_DIST.

	* engine/Makefile.am: Add various dependencies for build and make dist.

	* ilalink/Makefile.am: Add linker.h to SOURCES.

	* ilasm/Makefile.am: Add header files to SOURCES and ilasm_grammar.c,
	ilasm_grammar.h and ilasm_scanner.c to BUILT_SOURCES.

	* ildasm/Makefile.am: Add ildasm_internal.h to SOURCES.

	* image/Makefile.am: Add opdef.c to EXTRA_SOURCES and image.h and program.h
	to SOURCES.

	* libffi/Makefile.am, libffi/Makefile.in: Add configure.host and
	libtool-version to EXTRA_DIST.

	* support/Makefile.am: Add gen_errno.sh to EXTRA_DIST. Move errno_map.c to
	nodist_SOURCES, Add header files to dist_SOURCES. Remove $(srcdir) from
	errno_map.c to allow builddir != srcdir. Add dependencies for
	unicode.$(OBJEXT).

2005-08-19  Klaus Treichel  <ktreichel@web.de>

	* codegen/Makefile.am: Add TREECC_INPUTS to EXTRA_DIST. Move TREECC_OUTPUT
	to nodist_SOURCES and add header files to dist_SOURCES.

	* coremul/Makefile.am: Add header files to SOURCES.

	* csant/Makefile.am: Add header files to SOURCES.

	* cscc/bf/Makefile.am: Add TREECC_INPUTS to EXTRA_DIST. Move
	TREECC_SRCOUT to nodist_SOURCES and add header files to dist_SOURCES.

	* cscc/c/Makefile.am: Add TREECC_INPUTS to EXTRA_DIST. Move
	TREECC_SRCOUT to nodist_SOURCES and add header files to dist_SOURCES.

	* cscc/common/Makefile.am: Add cpp_defs.c to nodist_SOURCES, add
	cpp_defs.sh to EXTRA_DIST and add header files to dist_SOURCES.

	* cscc/csharp/Makefile.am: Add TREECC_INPUTS to EXTRA_DIST. Move
	TREECC_SRCOUT to nodist_SOURCES and add header files to dist_SOURCES.

	* cscc/java/Makefile.am: Add TREECC_INPUTS to EXTRA_DIST. Move
	TREECC_SRCOUT to nodist_SOURCES and add header files to dist_SOURCES.

	* cscc/vb/Makefile.am: Add header files to SOURCES.

2005-08-17  Klaus Treichel  <ktreichel@web.de>

	* libffi/Makefile.in: remove $(srcdir)/../compile from DIST_COMMON because
	it breaks make dist in pnet.

	* libffi/ChangeLog, libffi/configure, libffi/configure.ac,
	libffi/fficonfig.h.in, libffi/src/powerpc/ffi.c,
	libffi/src/powerpc/linux64_closure.S, libffi/src/powerpc/ppc_closure.S,
	libffi/src/powerpc/sysv.S, libffi/src/x86/ffi.c, libffi/src/x86/sysv.S,
	libffi/src/x86/win32.S: update to current libffi.

2005-08-17  Rhys Weatherley  <rweather@southern-storm.com.au>

	* Makefile.am: remove coremul from SUBDIRS.  It never built on anything
	other than x86 and will cause problems elsewhere.  Also, on Win32 it
	needs to be built as a .dll to work correctly.  Until these problems
	are fixed, it needs to stay out of the main build process.

	* NEWS, configure.in: update version for the "0.7.2" release.

	* configure.in: update working version to "0.7.3".

2005-08-15  Klaus Treichel  <ktreichel@web.de>

	* Makefile.am: add coremul to SUBDIRS. 

2005-08-13  Klaus Treichel  <ktreichel@web.de>

	* Makefile.am: change to run all targets on all subdirs.

	* libgc/Makefile.am. libgc/Makefile.in: change mips_sgi_mach_dep.s to
	mips_sgi_mach_dep.S to fix make dist error.

	* libffi/Makefile.in: remove $(srcdir)/../depcomp from DIST_COMMON.

2005-08-11  Klaus Treichel  <ktreichel@web.de>

	* support/expand.c: expand filenames starting with a drive specification
	with the windows functions on cygwin.

2005-08-07  Klaus Treichel  <ktreichel@web.de>

	* csant/csant_dir.c: Prevent prepending of pathname if filename starts with
	a drive specification on windows in CSAntDirCombine.

2005-08-03  Rainer Grlinger  <rainer.groesslinger@gmx.net>

	* libffi/include/Makefile.am, libffi/include/Makefile.in: ffitarget.h is
	installed in $(includedir)/pnet now. (applied by Klaus Treichel)

2005-08-02  Rainer Grlinger  <rainer.groesslinger@gmx.net>

	* doc/cvmdoc.py: replace module regex by re. (applied by Klaus Treichel)

2005-08-02  Deryk Robosson  <deryk@0x0a.com>

	* ilalink/link_main.c: Add missing newline to error message.

2005-08-01  Rainer Grlinger <rainer.groesslinger@gmx.net>

	* doc/pnetasm.texi: remove incorrect @. (applied by Klaus Treichel)

2005-08-01  Klaus Treichel  <ktreichel@web.de>

	* libgc/win32_threads.c: remove left over closing comment.

2005-07-30  Klaus Treichel  <ktreichel@web.de>

	* configure.in: add --disable-dependency-tracking to configure of libffi.

	* libffi/Makefile.am, libffi/makefile.in, libffi/configure: update to
	current cvs MAIN branch in gcc repository and remove directory testsuite
	from subdirs in makefiles and creation of Makefile from configure.

	* libffi/ChangeLog, libffi/ChangeLog.libgcj, libffi/LICENSE, libffi/README,
	libffi/acinclude.m4, libffi/aclocal.m4, libffi/fficonfig.h.in,
	libffi/configure, libffi/include/Makefile.am, libffi/include/Makefile.in,
	libffi/include/ffi.h.in, libffi/include/ffi_common.h, libffi/src/debug.c,
	libffi/src/ffitest.c, libffi/src/java_raw_api.c, libffi/src/prep_cif.c,
	libffi/src/raw_api.c, libffi/src/types.c, libffi/src/alpha/ffi.c,
	libffi/src/alpha/osf.S, libffi/src/arm/ffi.c,, libffi/src/arm/sysv.S,
	libffi/cris/ffi.c, libffi/cris/ffi.c, libffi/src/ia64/ffi.c,
	libffi/src/ia64/ia64_flags.h, libffi/src/ia64/unix.S,
	libffi/src/m68k/sysv.S, libffi/src/mips/ffi.c, libffi/src/mips/n32.S,
	libffi/src/mips/o32.S, libffi/src/powerpc/aix.S,
	libffi/src/powerpc/aix_closure.S, libffi/src/powerpc/asm.h,
	libffi/src/powerpc/darwin.S, libffi/src/powerpc/darwin_closure.S,
	libffi/src/powerpc/ffi.c, libffi/src/powerpc/ffi_darwin.c,
	libffi/src/powerpc/ppc_closure.S, libffi/src/powerpc/sysv.S,
	libffi/src/s390/ffi.c, libffi/src/s390/sysv.S, libffi/src/sh/ffi.c,
	libffi/src/sh/sysv.S, libffi/src/sparc/ffi.c, libffi/src/sparc/v8.S,
	libffi/src/sparc/v9.S, libffi/src/x86/ffi.c, libffi/src/x86/ffi64.c,
	libffi/src/x86/sysv.S, libffi/src/x86/unix64.S, libffi/src/x86/win32.S:
	update to current cvs MAIN branch in gcc repository.

	* libffi/configure.ac, libffi/configure.host, libffi/src/alpha/ffitarget.h,
	libffi/src/arm/ffitarget.h, libffi/src/cris/ffitarget.c,
	libffi/src/frv/eabi.S, libffi/src/frv/ffi.c, libffi/src/frv/ffitarget.h,
	libffi/src/ia64/ffitarget.h, libffi/src/m32r/ffi.c,
	libffi/src/m32r/ffitarget.h, libffi/src/m32r/sysv.S,
	libffi/src/m68k/ffitarget.h, libffi/src/mips/ffitarget.h,
	libffi/src/pa/ffi.c, libffi/src/pa/ffitarget.h, libffi/src/pa/linux.S,
	libffi/src/powerpc/ffitarget.h, libffi/src/powerpc/linux64.S,
	libffi/src/powerpc/linux64_closure.S, libffi/src/s390/ffitarget.h,
	libffi/src/sh/ffitarget.h, libffi/src/sh64/ffi.c,
	libffi/src/sh64/ffitarget.h, libffi/src/sh64/sysv.S,
	libffi/src/sparc/ffitarget.h, libffi/src/x86/ffitarget.h,
	libffi/libtool-version: added from current cvs MAIN branch in gcc
	repository.

	* libffi/acconfig.h, libffi/include/ffi_mips.h: removed.

2005-07-30  Deryk Robosson  <deryk@0x0a.com>

	* engine/cvm_call.c: profile macros called without arguments no longer
	throw an error on older (2.9) gcc.

2005-07-25  Deryk Robosson  <deryk@0x0a.com>

	* configure.in: initial BeOS checks,
	support/thr_choose.h: Add BeOS thread support.

2005-07-23  Klaus Treichel  <ktreichel@web.de>

	* libgc/aclocal.m4, libgc/Makefile.in, libgc/configure,
	libgc/doc/Makefile.in, libgc/include/Makefile.in: Update to 6.5.

2005-07-23  Klaus Treichel  <ktreichel@web.de>

	* libgc/win32_threads.c: Change max threads from 256 to 1024 and add
	GC_CreateThread for cygwin systems to use win32 native threads.
	Apply Tums changes to allocate thread_args and thread_start_info using
	malloc instead of GC_malloc_uncollectable.

	* libgc/include/gc.h: Add prototype for GC_CreateThread on cygwin.

2005-07-23  Klaus Treichel  <ktreichel@web.de>

	* libgc/Makefile.am, libgc/Makefile.direct,
	libgc/NT_STATIC_THREADS_MAKEFILE, libgc/allchblk.c, libgc/alloc.c,
	libgc/alpha_mach_dep.S, libgc/backgraph.c, libgc/configure.in,
	libgc/darwin_stop_world.c, libgc/dyn_load.c, libgc/finalize.c,
	libgc/headers.c, libgc/mach_dep.c, libgc/mallocx.c, libgc/mark.c,
	libgc/mark_rts.c, libgc/misc.c, libgc/mkinstalldirs, libgc/os_dep.c,
	libgc/powerpc_darwin_mach_dep.s, libgc/pthread_stop_world.c,
	libgc/pthread_support.c, libgc/reclaim.c, libgc/solaris_pthreads.c,
	libgc/solaris_threads.c, libgc/specific.c, libgc/threadlibs.c,
	libgc/version.h, libgc/win32_threads.c, libgc/cord/cordprnt.c,
	libgc/cord/cordtest.c, libgc/doc/README, libgc/doc/README.changes,
	libgc/doc/README.darwin, libgc/doc/README.environment,
	libgc/doc/README.solaris2, libgc/include/gc.h, libgc/include/gc_allocator.h,
	libgc/include/gc_config_macros.h, libgc/include/gc_cpp.h,
	libgc/include/new_gc_alloc.h, libgc/include/private/gc_hdrs.h,
	libgc/include/private/gc_locks.h, libgc/include/private/gc_priv.h,
	libgc/include/private/gcconfig.h, libgc/include/private/pthread_support.h,
	libgc/include/private/solaris_threads.h, libgc/tests/test.c: Updated to 6.5

	* libgc/aix_irix_threads.c, libgc/irix_threads.c, libgc/linux_threads.c,
	libgc/powerpc_macosx_mach_dep.s: removed in 6.5

2005-07-03  Klaus Treichel  <ktreichel@web.de>

	* engine/lib_reflect.c: add deserilization support for arrays of
	System.String and System.Type elements.
	
2005-07-03  Klaus Treichel  <ktreichel@web.de>

	* engine/lib_reflect.c: fix deserializing of arrays that array elements are
	deserialized to the correct array index.

	* image/ser_parse.c: fix deserialization of object arrays with string
	elements. String arrays still bail out when the constructor is called.

2005-06-26  Klaus Treichel  <ktreichel@web.de>

	* image/item.c: Fix type-punned aliasing warnings of gcc 4.1.

	* engine/lookup.c: Handle names of nested classes in LookupClass (seperator
	+ additional to / in typenames).

2005-06-20  Klaus Treichel  <ktreichel@web.de>

	* engine/lib_delegate.c: Fix type-punned aliasing warnings.

2005-06-20  Gopal V  <gopalv82@yahoo.com>

	* engine/cvm.c, engine/cvm_config.h, engine/mklabel.sh: define
	CVM_X86_64. Do manual register allocation for pc, stack and frame.
	Use assembly 'jmpq' instead of cgoto for performance.

2005-06-11  Rhys Weatherley  <rweather@southern-storm.com.au>

	* NEWS, configure.in: update version for the "0.7.0" release.

	* configure.in: update working version to "0.7.1".

2005-06-11  Gopal V  <gopalv82@yahoo.com>

	* engine/lib_reflect.c: fix type-punned aliasing warnings.

2005-06-09  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/meta_build.c, image/meta_index.c, image/pecoff_loader.c:
	make the image loader a little more robust against 2.0 assemblies
	that contain generics.

2005-05-05  Klaus Treichel  <ktreichel@web.de>

	* engine/convert.c, engine/engine.h, engine/ilrun.c, engine/ilverify.c,
	engine/internal.c, engine/Makefile.am, engine/process.c, engine/thread.c,
	include/il_engine.c: add support for multiple ILExecProcess instances.

	* engine/engine.c: Add ILExecEngine functions.

2005-04-25  Marc Haisenko   <marc@darkdust.net>

	* README.profiling: added README.profiling

2005-04-23  Klaus Treichel  <ktreichel@web.de>

	* engine/lib_profiling.c: fix build problem if ENHANCED_PROFILER is not
	defined.

2005-04-22  Marc Haisenko   <marc@darkdust.net>

	* configure.in, engine/Makefile.am, engine/cvm_call.c, engine/cvmc.c,
	engine/engine.h, engine/ilrun.c, engine/int_proto.h,
	egnine/int_table.c, engine/lib_profiling.c, engine/mkint.sh, 
	image/program.h: Add enhanced profiler. This profiler must be enabled 
	via ./configure --enable-enhanced-profiler. I'll write a README about
	it on Monday. The code shouldn't interfere with anything, it's guarded
	with #ifdef's and will only be active if enabled via configure and
	when the -M (and new -E) commandline arguments are given.

2005-04-06  Marc Haisenko   <marc@darkdust.net>

	* configure.in, support/interrupt.h: Add --enable-interrupts for work
	around on bugs #12552, #11627 (patch #3884 applied by drobosson)

2005-04-02  Klaus Treichel  <ktreichel@web.de>

	* engine/cvm_ptr.c: Replace call to ILMemMove with IL_MEMMOVE to avoid
	possible register misuse on x86 systems.

	* engine/lib_string.c: optimize FindInRange for IndexOf and LastIndexOf.

2005-03-25  Klaus Treichel  <ktreichel@web.de>

	* engine/engine.h: add macro IL_CONVERT_METHOD to avoid function calls if
	method is already converted.

	*engine/cvm/call.c: replace function calls to _ILConvertMethod with macro
	calls of IL_CONVERT_METHOD.

2005-03-22  Klaus Treichel  <ktreichel@web.de>

	* engine/thread.c: Fix a possibe engine lockup.

2005-03-09  Klaus Treichel  <ktreichel@web.de>

	* engine/lib_string.c: change String.Replace so that a new string is
	created only if a replacement has to be done.  Changed the off by one
	bug (thx. to Erich Kitzmller) that fixed the problem.

2005-03-06  Klaus Treichel  <ktreichel@web.de>

	* ilranlib/Makefile.am: fix problem with make install on cygwin.

2005-03-05  Hermann Weiss  <Hermann.Weiss@de.trumpf-laser.com>

	* engine/lib_task.c:  Added functions _IL_Process_GetErrnoMessage
	_IL_Process_GetErrno to get the result of forked processes. (patch
	#3778, applied by drobosson)

2005-02-28  Marc Haisenko  <marc@darkdust.net>

	* engine/cvm_call.c: callFrame now defaults to zero (otherwise I get an
	'might be used unitialized' warning with my profiling patch and callFrame
	having invalid values)

2005-02-23  Gopal V  <gopalv82@yahoo.com>

	* cscc/csharp/cs_stmt.tc: Fix overflow bug in determining type of
	switch to use. (fix bug #12048).

2005-02-21  Doru Budai  <doru.budai@gmail.com>

	* include/il_sysio.h, support/socket.c: Enable UDP broadcast. (patch
	#3757, applied by drobosson)

2005-02-21  Klaus Treichel  <ktreichel@web.de>

	* support/socket.c: prevent the sending of SIGPIPE on broken connections in
	ILSysIOSocketSend and ILSysIOSocketSendTo. (fix bug #11980)
 
2005-02-19  Klaus Treichel  <ktreichel@web.de>

	* engine/cvm_ptr.c: fix isinst instruction to behave like a cast.
	(fix bug #11998)

2005-02-09  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_stringbuilder.c: fix gcc 2 vs gcc 3 issues.

2005-02-06  Klaus Treichel  <ktreichel@web.de>

	* engine/lib_stringbuilder.c: Added internalcalls for StringBuilder class. 

	* engine/Makefile.am: Add lib_stringbuilder.c

	* engine/int_proto.c, engine/int_table.c: Add internal functions for
	StringBuilder.

2004-01-25  Gopal V  <gopalv82@yahoo.com>

	* engine/cvm_config.h, engine/unroll_const.c: Enable PPC
	unroller by default and avoid LDC_R4/R8 code for PPC.

2004-01-24  Gopal V  <gopalv82@yahoo.com>

	* engine/unroll.c: Add CVM_PPC as an unrolled platform.

2005-01-23  Russell Stuart  <russell-savannah@stuart.id.au>

	* Updated build-depian-packages.sh for new release.

2005-01-21  Gopal V  <gopalv82@yahoo.com>

	* engine/md_ppc.h, engine/md_ppc.c, engine/ppc_codegen.h, 
	engine/unroll_arith.c, engine/unroll_ptr.c, engine/cvm_config.h:
	Integer and pointer PPC unroller (except for 64 bit arith).

2005-01-16  Stephen Compall  <s11@member.fsf.org>

	* doc/pnettools.texi (Build file syntax): Specify behavior in
	cases in which insufficient permissions prevent particular
	actions (thanks to Marcus Urban <mathpup@mylinuxisp.com>).
	(Compile tag): Warn about tags whose subsequent instances in a
	particular context are ignored: sources, references, and
	resources (thanks to Marcus Urban).

2005-01-16  Rhys Weatherley  <rweather@southern-storm.com.au>

	* NEWS, configure.in: update version for the "0.6.12" release.

	* configure.in: update working version to "0.6.13".

2005-01-01  Stephen Compall  <s11@member.fsf.org>

	* support/cmdline.c (ILCmdLineExpand): Skip empty lines in "@file"
	resource files.

2004-12-28  Gopal V  <gopalv82@yahoo.com>

	* engine/md_ppc.h, engine/ppc_codegen.h, engine/unroll.c: Implement
	FPU ops for add/sub/mul/div.

2004-12-25  Gopal V  <gopalv82@yahoo.com>

	* engine/md_ppc.h, engine/ppc_codegen.h: Stub macros for FPU ops and
	implement md_switch()

2004-12-22  Gopal V  <gopalv82@yahoo.com>

	* engine/unroll_ptr.c: Implement 2D array operations for 
	PPC.

2004-12-21  Gopal V  <gopalv82@yahoo.com>

	* engine/md_ppc.h, engine/ppc_codegen.h, engine/unroll_arith.c:
	Implement integer division for PPC.

	* engine/md_ppc.h, engine/ppc_codegen.h: Implement array load/store
	unrolling for PPC.

2004-12-20  Gopal V  <gopalv82@yahoo.com>

	* engine/md_ppc.c, engine/md_ppc.h, engine/ppc_codegen.h: 
	implement compare operations using a conditional three way
	branch.

	* engine/md_ppc.h: Finish conditional branch macros.

2004-12-19  Gopal V  <gopalv82@yahoo.com>

	* engine/md_ppc.c, engine/md_ppc.h, engine/ppc_codegen.h: 
	Implement seteq, setgt and other compare against zero 
	predicates.

	* doc/unrolling.txt: Add more documentation on debugging 
	the unroller in gdb.

2004-12-17  Gopal V  <gopalv82@yahoo.com>

	* support/clflush.c: Reimplement cache flushing for
	PPC to use "dcbf" instead of "dcbst" to ensure that
	cache coherency is proper.

2004-12-16  Gopal V  <gopalv82@yahoo.com>

	* engine/md_ppc.h, engine/ppc_codegen.h: First cut
	of the PPC codegen.
	
	* engine/Makefile.am, engine/md_ppc.c, engine/md_ppc.h,
	engine/ppc_codegen.h: Basic arithmetic implemented.	

2004-11-29  Richard Baumann  <biochem333@nyc.rr.com>

	* cscc/csharp/cs_gather.c: fix handling of methods, properties, and
	events which hide base class virtuals and add access modifier
	consistency checks for derived class properties and events.

2004-11-23  Gopal V  <gopalv82@yahoo.com>

	* support/interrupt_posix.c: Fix bug #10906 by adding appropriate ifdefs
	to detect older EAX defines instead of the REG_EAX .

2004-11-22  Klaus Treichel  <ktreichel@web.de>

	* include/il_utils.h, engine/lib_string.c, support/unicode.c: Fix case
	sensitive string comparision (upper case char > lower case char).

2004-11-22  Gopal V  <gopalv82@yahoo.com>

	* support/console.c: Use a portable invocation of tparm() with
	10 parameters to match Susv3 specifications.

2004-11-02  Gopal V  <gopalv82@yahoo.com>

	* cscc/common/cc_compat.c: Allow /debug:full and /debug:pdbonly flags
	in CSC compat mode.

2004-10-30  Rhys Weatherley  <rweather@southern-storm.com.au>

	* NEWS, configure.in: update version for the "0.6.10" release.

	* configure.in: update working version to "0.6.11".

2004-10-30  Gopal V  <gopalv82@yahoo.com>

	* engine/verify_call.c: Do not inline loads from value types.

2004-10-29  Peter Lund <firefly@diku.dk>

	* clrwrap/clrwrap.1, csant/csant.1, cscc/cscc.1, cscc/csdoc.1
	cscc/cpp/cscc-cpp.1, csdoc/csdoc2hier.1, csdoc/csdoc2html.1,
	csdoc/csdoc2texi.1, csdoc/cssrc2html.1, engine/ilrun.1, 
	engine/ilverify.1, ilalink/ilalink.1, ilasm/ilasm.1, ildasm/ildasm.1,
	ildd/ildd.1, ilfind/ilfind.1, ilgac/ilgac.1, ilheader/ilheader.1,
	ilnative/ilnative.1, ilranlib/ilranlib.1, ilsize/ilsize.1, 
	ilstrip/ilstrip.1, resgen/resgen.1:	fix manpage formatting issues. 
	(patch attached to bug #10779, Gopal).

2004-10-29  Gopal V  <gopalv82@yahoo.com>

	* support/serial.c: Fix further issues with building on
	BeOS (redone patch #3479).

2004-10-29  Simon Posnjak <simon.posnjak@siol.net>

	* include/il_align.h: force alignment to 4-bytes for CRIS
	
	* libffi/Makefile.am, libffi/Makefile.in, libffi/configure,
	libffi/configure.in, libffi/include/ffi.h.in, libffi/src/cris/ffi.c,
	libffi/src/cris/sysv.S, libffi/src/prep_cif.c, libffi/src/types.c,
	libgc/include/gc.h, libgc/include/private/gc_locks.h, 
	libgc/include/private/gcconfig.h, libgc/os_dep.c: port libffi and 
	libgc to CRIS platform.
	(Gopal, patch from email).

2004-10-28  Gopal V  <gopalv82@yahoo.com>

	* cscc/csharp/cs_grammar.y: Fix segfault due to missing yyisa check.
	(bug #10753).

	* configure.in: replace AC_CHECK_TYPE with AC_TRY_COMPILE for 
	compatibility with older autoconf systems.

2004-10-27  Carl-Adam Brengesjo  <ca.brengesjo@telia.com>

	* support/socket.c: BeOS has incomplete socket support (thanks to Tomas
	Wilhelmsson <wilhelmsson_tomas@hotmail.com>).

2004-10-27  Gopal V  <gopalv82@yahoo.com>

	* configure.in, support/ansi.c, support/dir.c: Fix compile errors on
	BeOS (thanks to Tomas Wilhelmsson <wilhelmsson_tomas@hotmail.com>).

	* support/dynlib.c: Implement BeOS specific dynlib functionality.
	(thanks to Tomas)

2004-10-26  Klaus Treichel  <ktreichel@web.de>

	* support/decimal.c: fix division bug

2004-10-23  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/engine.h, engine/ilrun.c, engine/process.c,
	image/link.c, image/meta_build.c, image/pecoff_loader.c,
	include/il_engine.h, include/il_image.h: add IL_LOADFLAG_IGNORE_ERRORS,
	to allow metadata errors to be ignored at runtime.

2004-10-21  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/cvmc_gen.h: add a missing semi-colon.

	* engine/cvm_call.c: fix another reference to "_ILPackVarArgs".

2004-10-20  Gopal V  <gopalv82@yahoo.com>

	* engine/cvm_call.c, engine/engine.h, engine/lib_delegate.c: Change 
	_ILPackVarArgs to _ILPackCVMStackArgs and remove it from var args 
	#ifdef.

	* engine/cvmc_gen.h: Move the COP_TRACE generation out of the 
	_CVM_OUT_RETURN macro to fix kernel-fp compliation.

	* engine/internal.c: Add DnsMethods suppression if networking is disabled.

2004-10-19  Thong Nguyen  <tum@veridicus.com>

	* engine/lib_reflect.c: Fixed null dereference when using
	ClrField.SetValue with a null value (bug #10706 by Andre Seidelt).
	
2004-10-15  Adam Gibson  <adam.gibson@gmail.com>

	* engine/int_table.c, engine/int_proto.h, engine/lib_serial.c,
	include/il_serial.h, support/serial.c: Implement timeouts for 
	*nix version of serial reads , add timeout parameter to WaitForInput.
	(patch #3448, Gopal).

2004-10-13  Gopal V  <gopalv82@yahoo.com>

	* ilasm/ilasm_grammar.y: Add missing intialization and fix segfault.

	* support/serial.c: Implement serial I/O open, read, write and close
	operations for Win32.

2004-10-12  Gopal V  <gopalv82@yahoo.com>

	* ilasm/ilasm_grammar.y, ilasm/ilasm_data.c, ilasm/ilasm_data.c: Implement
	forward references for data labels.

2004-10-11  Gopal V  <gopalv82@yahoo.com>
	
	* libffi/src/x86/ffi64.c: All stack params should be 8 aligned for amd64.
	(picked off gcc-3.4-rhl branch of libffi)

	* engine/verify_call.c: Fix build warnings with amd64 for pointer sizes.

2004-10-08  Carl-Adam Brengesjo  <ca.brengesjo@telia.com>

	* support/time.c: Fixed UTC offset for DST (Win32). Please review
	<http://dotgnu.org/pipermail/pnet-developers/2004-October/001745.html>.
	
2004-10-01  Gopal V  <gopalv82@yahoo.com>

	* configure.in,  support/serial.c: Include <sys/modem.h> for 
	HPUX compatibility.

2004-09-28  Carl-Adam Brengesjo  <ca.brengesjo@telia.com>

	* support/socket.c: Fix socket flags for Solaris and other OSes 
	which do not match with CLR socket flag enums. (patch #3392 originally
	from Adam J. Tybor)

2004-09-25  Gopal V  <gopalv82@yahoo.com>

	* engine/lib_emit.c: Fix compiler warning with gcc.

	* engine/Makefile.am: add libgc include paths for the without tools
	build.

2004-09-24  Gopal V  <gopalv82@yahoo.com>

	* image/sig_writer.c: Import classes before writing class tokens.
	(patch #3387 from ryan@netsengercorp.com).

	* engine/lib_emit.c: Add member imports for attribute creation 
	from constructors as well.

	* image/sig_writer.c: Resolve classes before importing them to 
	current image.

2004-09-24  Maciek Plewa  <maciek@mil-sim.net>

	* cscc/cpp/cppmain.c, cscc/cpp/Makefile.am: Add response file support 
	for systems with limited command line length. (patch #3280, Gopal)

2004-09-24  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/md_x86.c: use "fprem" instead of "fprem1", to fix bug #10483.

	* support/gen_errno.sh: support platforms that spread errno codes
	across multiple .h files (bug #10485).

	* include/il_types.h: use "ILNativeUInt" instead of "unsigned long"
	in the type macros because on some platforms, "long" is not the
	same size as a pointer.

2004-09-22  Gopal V  <gopalv82@yahoo.com>

	* cscc/cpp/Makefile.am: Add rm -f for cli-unknown-cpp man page.

2004-09-20  Gopal V  <gopalv82@yahoo.com>

	* image/context.c: Allow ILContextGetFile to lookup full paths as well.

	* engine/lib_reflect.c: Prevent double loading of assemblies by path
	using ILContextGetFile.

2004-09-20  Russell Stuart <russell-savannah@stuart.id.au>

	* */Makefile.am: Change all "$(LN_S) -f ... X" to
	"rm -f X; $(LN_S) -f ... X"

2004-09-20  Russell Stuart <russell-savannah@stuart.id.au>

	* ilasm/Makefile.am: Added -f to "ln -s ... man/man1/al.1.gz"

2004-09-18  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_emit.c:
	implement the internalcalls for CustomAttributeBuilder.

2004-09-17  Gopal V  <gopalv82@yahoo.com>

	* support/socket.c: Fix minor bug in ILSysIOSocketSelect() for infinite
	selects.

2004-09-17  Christian Schuster  <christian.schuster@s2000.tu-chemnitz.de>

	* cscc/bf/bf_optimize.c: Fix the behavior of BFOptimize() which currently
	destroys the parse tree. (Patch #3366, Gopal)

2004-09-13  Gopal V  <gopalv82@yahoo.com>

	* support/time.c: Fix boot time calculations when the current nanoseconds
	fraction is less than boot time fraction.

2004-09-11  Thong Nguyen  <tum@veridicus.com>

	* engine/thread.c: Updated ILExecThreadCurrent's call to
	System.Threading.Thread's constructor with the ILThread
	pointer as an argument.
	
2004-09-09  Gopal V  <gopalv82@yahoo.com>

	* cscc/csharp/cs_lvalue.tc: Treat enum members as underlying types inside
	enum initializers. (bug #10058).
	
2004-09-08  Gopal V  <gopalv82@yahoo.com>

	* image/member.c: Included nested class checks for FAMORASSEM members.
	(bug #10311).

2004-09-07  Russell Stuart <russell-savannah@stuart.id.au>

	* build-debian-packages.conf,
	  build-debian-packages.sh,
	  cscc/Makefile.am,
	  cscc/cpp/Makefile.am,
	  debian/README.Debian,
	  debian/changelog,
	  debian/pnet-compiler.postinst,
	  debian/rules,
	  ilasm/Makefile.am,
	  ilranlib/Makefile.am,
	  ilstrip/Makefile.am,
	  pnet.spec.in:
	  Clean up Debian packaging.

2004-09-05  Robin KAY  <komadori@gekkou.co.uk>

	* configure.in, support/pt_defs.h, support/thr_choose.h:
	Enable threading for Solaris (patch #3340, Gopal).

2004-09-04  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_info.c: fix a compile problem that causes breakages
	on gcc 2.95.x.

2004-08-31  Carl-Adam Brengesjo  <ca.brengesjo@telia.com>

	* engine/lib_info.c, configure.in: Obtain user name from UIDs instead 
	of from getlogin. (Patch #3295, Gopal)

2004-08-25  Thong Nguyen  <tum@veridicus.com>

	* engine/thread.c: Added constructor call to new CLR thread
	objects created by the engine (ILExecThreadCurrentClrThread).

2004-08-24  Thong Nguyen  <tum@veridicus.com>

	* engine/lib_defs.h: Changed System_Thread start field
	from type (ILObject *) to (System_Delegate *).
	
	* engine/lib_thread.c: Made new thread invoke ThreadStart
	by invoking the target method of the delegate directly rather
	than by invoking the ThreadStart.Invoke method. This is faster
	and prevents the ThreadStart.Invoke method from appearing in
	stack traces.
	
2004-08-23  Thong Nguyen  <tum@veridicus.com>

	* include/il_errno.h: Added IL_ERRNO_ENOFILE (mapped to
	IL_ERRNO_ENOENT).
	
2004-08-22  Thong Nguyen  <tum@veridicus.com>

	* include/il_thread.h: Added ILThreadSuspendRequest and IL_SUSPEND_*
	return value constants.
	
	* support/thread.c: Added implementaton of ILThreadSuspendRequest.
	Added suspend support to ILThreadJoin (made it suspend after it
	exits the wait/sleep/join state if there is a suspend request pending).
	
	* support/wait.c: Added suspend support to the wait functions.
	
	* engine/cvm_call.c: Added ThreadState check to the
	_IL_MANAGED_SAFEPOINT_THREAD_SUSPEND check.
	
	* engine/engine.h: Added _ILExecThreadGetState and
	_ILExecThreadResumeThread prototypes.
	
	* engine/lib_thread.c: Changed Thread.Resume and Thread.ThreadState
	implementatons to use the new engine level versions.
	
	* engine/thread.c: added _ILExecThreadGetState and 
	_ILExecThreadResumeThread implementations.
	Changed ILExecThreadSuspendThread implementation to remove a race
	condition and not require the suspend requesting thread to wait
	on the thread being suspended even if the thread being suspended is
	running managed code and not in a wait/sleep/join state.	
		
2004-08-17  Gopal V  <gopalv82@yahoo.com>

	* engine/lib_reflect.c: Perform promotions for integer types to floats
	and doubles for invoke via reflection.

2004-08-11  Gopal V  <gopalv82@yahoo.com>

	* engine/lib_reflect.c: Fix array creations to use System.Type[] 
	arrays instead of System.Object[] .

	* engine/lib_reflect.c: Throw a FieldAccessException when SetValue
	is attempted at a const or readonly field.

	* engine/lib_reflect.c: Throw an ArgumentException when the wrong
	type is passed to SetValue.

2004-08-08  Gopal V  <gopalv82@yahoo.com>

	* engine/lib_emit.c: Allow NULL parameters for ClrParameter names
	for unnamed parameters (bug #9921).

	* codegen/cg_arith.tc: Work around GCC inline optimisation issues in 
	PPC64 by checking for out parameter instead of result from function.

2004-08-08  Rhys Weatherley  <rweather@southern-storm.com.au>

	* NEWS, configure.in: update version for the "0.6.8" release.

	* configure.in: update working version to "0.6.9".

2004-08-07  Rhys Weatherley  <rweather@southern-storm.com.au>

	* csant/csant_cscc.c, cscc/cscc.1, cscc/common/cc_compat.c,
	cscc/common/cc_options.c, doc/pnettools.texi, ilalink/ilalink.1,
	ilalink/link_create.c, ilalink/link_main.c, include/il_linker.h:
	add the "-fculture" option to the compiler and linker.

2004-08-06  Gopal V  <gopalv82@yahoo.com>

	* support/interlocked_x86.h: Fix SSE2 checks to use __SSE2__ instead
	of CONFIG_X86_SSE2.

	* configure.in, engine/Makefile.am: Add checks for interrupt.h and 
	add ../support to the include paths for no-tools build.

	* configure.in: remove check for interrupt.h as it is an internal
	file.

2004-08-05  Rhys Weatherley  <rweather@southern-storm.com.au>

	* doc/pnet_faq.html: update the FAQ.

2004-08-02  Rhys Weatherley  <rweather@southern-storm.com.au>

	* csant/csant_cscc.c, doc/pnettools.texi, ilalink/ilalink.1,
	ilalink/link_create.c, ilalink/link_main.c, image/image.h,
	image/writer.c, include/il_linker.h, include/il_writer.h:
	add the "-fmetadata-version" option to the linker, to set the
	version string in the metadata header to something appropriate;
	if not present, infer the version string from that on "mscorlib".

2004-07-30  Gopal V  <gopalv82@yahoo.com>

	* ilasm/Makefile.am, cscc/bf/Makefile.am, cscc/c/Makefile.am, 
	cscc/csharp/Makefile.am, cscc/java/Makefile.am, cscc/vb/Makefile.am:
	Mark grammar.c files as dependencies for the scanner.l files to 
	allow proper parallel builds.

2004-07-30  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/cvm_dasm.c: add missing opcode names.

2004-07-29  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/image.h, image/meta_build.c, image/meta_index.c,
	image/meta_writer.c, image/program.h, include/il_meta.h:
	fix some problems with loading tokens related to Generics
	that prevented Portable.NET from reading assemblies compiled
	with .NET Framework SDK 2.0 (the SDK format is different
	from that used by Gyro).

2004-07-26  Gopal V  <gopalv82@yahoo.com>

	* codegen/cg_lvalue.tc: fix indexer stores into structs to use
	addresses rather than value (bug #9741).

2004-07-23  Gopal V  <gopalv82@yahoo.com>

	* cscc/csharp/cs_lookup.c: Ambigous lookups should not be reported
	unless reportErrors is true.

2004-07-22  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_stdio.c,
	include/il_console.h, support/console.c: new internalcalls for
	the extended console.

2004-07-20  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/writer.c: change the metadata version to "v2.0.40607"
	to be consistent with .NET Framework SDK 2.0.

2004-07-19  Gopal V  <gopalv82@yahoo.com>

	* cscc/csharp/cs_grammar.y: Implement a quick fix to display
	error messages for 'private' modifiers in explicit interface
	implementations.

	* cscc/csharp/cs_oper.tc: Check for event types before performing
	add/remove operations.

2004-07-19  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/cs_main.c, cscc/cscc.1, cscc/csharp/cs_gather.c,
	cscc/csharp/cs_internal.h, cscc/csharp/cs_modifiers.c,
	doc/pnettools.texi: add the "-fhidebysig" and "-fhidebyname"
	options to cscc; the latter can be used to enable VB-style
	method attributes in C# code.

2004-07-17  Gopal V  <gopalv82@yahoo.com>

	* cscc/csharp/cs_grammar.y: Fix bug #9674 , do while statements have to
	have a terminating ';'.

2004-07-16  Richard Baumann  <biochem333@nyc.rr.com>

	* ilgac/ilgac.1: fix a typo.

	* configure.in, libffi/configure.in, libgc/os_dep.c,
	libgc/include/private/gcconfig.h, support/thr_choose.h,
	support/thread.c: apply patch #3164 for OpenBSD support.

2004-07-12  Klaus Treichel  <ktreichel@web.de>

	* HACKING: updated broken links, instructions to get current cvs version
	and removed reference to daily snapshots.

2004-07-10  Gopal V  <gopalv82@yahoo.com>

	* image/meta_types.c: Resolve classes in TypeAssignCompatible to 
	ensure the inheritance hierarchy is created before comparison.

	* engine/heap.c: Make sure the class is resolved before 
	being allocating objects.

2004-07-09  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/lib_attrs.c: recognise "OptionalAttribute" and turn it
	into the "[opt]" flag on parameters.

	* image/lib_attrs.c: recognise "DefaultValueAttribute" on parameters
	and turn it into a metadata constant value.

2004-07-08  Rhys Weatherley  <rweather@southern-storm.com.au>

	* codegen/cg_decls.tc, codegen/cg_gen.h, codegen/cg_output.c,
	cscc/cs_main.c, cscc/common/cc_main.c, cscc/common/cc_main.h,
	cscc/csharp/cs_decls.tc, cscc/csharp/cs_defs.tc,
	cscc/csharp/cs_grammar.y: perform semantic analysis and code
	generation on standalone attributes that aren't attached
	to a class.

	* ilalink/link_create.c, ilalink/link_image.c, ilalink/link_main.c,
	include/il_linker.h: use the version number in the "AssemblyVersion"
	attribute if the user did not supply "-fassembly-version".

	* engine/cvmc_gen.h: slight modification to _CVM_PTR to work around a
	warning from gcc 3.4.x.

	* cscc/csharp/cs_attrs.c, engine/lib_reflect.c, ildasm/ildasm_attrs.c,
	image/ser_parse.c, image/ser_writer.c: fix a bug related to the
	serialization of null strings in attribute blocks.

	* support/cmdline.c: remove trailing spaces and TAB's from lines
	within a response file.

2004-07-07  Richard Baumann  <biochem333@nyc.rr.com>

	* engine/lib_gc.c: fix _IL_GCHandle_GCAddrOfPinnedObject behavior
	for arrays (patch to bug #9542 by leppie).

2004-07-05  Klaus Treichel  <ktreichel@web.de>

	* support/time.c: fix problem with daylight savings.
	(patch #3180 by David Logan)

2004-06-21  Gopal V  <gopalv82@yahoo.com>

	* cscc/c/c_lvalue.tc: Return the field type during ILNode_Prepare for
	Member access because it is used for the Cast during GenDiscard of 
	Assign expressions.

2004-06-21  Thong Nguyen  <tum@veridicus.com>

	* support/wait_mutex.c: Fixed ownedMutexesCount not being decremented
	when a mutex is released.
	
2004-06-19  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/pinvoke.c: remove ILFreeNativeString, because it needs a
	rethink when pinvoke is rewritten from scratch shortly.

2004-06-17  Thong Nguyen  <tum@veridicus.com>

	* support/interrupt.h, support/interrupt_posix.c: Added interrupt
	and interrupt context support for FreeBSD.

	* support/time.c: Added ILGetSinceRebootTime implementation for
	FreeBSD.
	
	* configure.in: Added WINLIBS subst so we can include ole32 and
	other windows specific libraries that we need to link with.
	
	* engine/Makefile.am: Added WINLIBS to libraries list.
	
	* engine/pinvoke.c: Made it so that strings returned by pinvoked
	methods are automatically freed.
	
2004-06-18  Thong Nguyen  <tum@veridicus.com>

	* engine/lib_thread.c: Added much faster implementation of the
	Thread.VolatileRead/Write functions.
	
	* support/interlocked_x86.h: Added improved ILInterruptMemoryBarrier
	implementation for X86 systems.
	
	* engine/convert.c: Added support for returning the dll name when
	a p/invoked DLL isn't found.
	
	* engine/engine.h, engine/cvm_ptr.c: Added _ILSystemObjectSetField
	function.
	
	* engine/lib_monitor.c: Fixed spelling mistakes in comments.
	
	* include/il_engine.h, engine/lookup.c: Added 
	ILExecThreadLookupFieldFromClasss function.

2004-06-18  Gopal V  <gopalv82@yahoo.com>

	* engine/int_table.c, engine/int_proto.h, engine/lib_socket.c:
	Changes to reflect the change of internal calls from Dns to DnsMethods.

	* engine/int_table.c, engine/int_proto.h, engine/lib_socket.c,
	support/dns.c, include/il_sysio.h, configure.in : Wrap gethostname() 
	in a support ILGetHostName() wrapper, add detection code and implement
	InternalGetHostName() internal call.

	* support/socket.c, configure.in: fix SetSocketOption and put 
	#warning directives for the function not available cases. (bug #9326).

2004-06-18  Klaus Treichel  <ktreichel@web.de>

	* clrwrap/Makefile.am, csant/Makefile.am, csant/Makefile.am,
	cscc/Makefile.am, csdoc/Makefile.am, ilalink/Makefile.am,
	ilasm/Makefile.am, ildasm/Makefile.am, ildd/Makefile.am,
	ilfind/Makefile.am, ilgac/Makefile.am, ilheader/Makefile.am,
	ilnative/Makefile.am, ilsize/Makefile.am, resgen/Makefile.am,
	tests/Makefile.am: add missing library $(GCLIBS) to LDADD

2004-06-18  Thong Nguyen  <tum@veridicus.com>

	* configure.in: Added check for sys/sysinfo.h and sys/sysctl.h.
	
	* support/time.h: Added implementation of ILGetSinceRebootTime
	for Linux.
	
	* support/thr_defs.h, support/wakeup.c: Made wakeups to use
	hashtables instead of lists to store currently owned mutexes.
	
	* support/wait_mutex.c: Added fast hashtable support code
	for wakeup owned mutexes.
	
	* engine/cvm_inline.c: Fixed comments so that CVM doc generation
	works again.
	
2004-06-18  Thong Nguyen  <tum@veridicus.com>

	* include/il_thread.h: Changed Interrupt handling functions to
	be more generic.  Added 2 more interrupt types (divide by zero
	and overflow).

	* engine/cvm.c: Added macros to support overflow & divide by
	zero interrupts.  Removed interrupt handling support on systems
	where interrupt contexts aren't available (i.e. removed
	support for saving exception state to the thread object).
	
	* engine/cvm_arith.c: Replaced overflow & divide by zero
	with appropriate replacement macros from cvm.c.
	
	* engine/cvm_call.c: Cleared thread->thrownException after call
	to ILThreadSelfAborting().  Added many more "managed barrier"
	gauards by inserting BEGIN/END_NATIVE_CALL calls around
	CVM private native calls.
	
	* engine/cvm_except.c: Added _ILSystemExceptionWithClass call.
	
	* engine/cvm_except.c, engine/cvm_stack.c:
	Removed EXCEPT_BACKUP calls since they are no longer supported.
	
	* engine/cvm_interrupt.c: Added support for overflow & divide
	by zero interrupts.
	
	* engine/engine.h: Added checks for overflow & divide by zero
	support.
	
	* engine/lib_reflect.c: Set objectType to 0 to remove erroneous
	"local used without being initialized" warning.
	
	* engine/thread.c: Added support for overflow & divide by zero
	interrupts.  Moved interrupt registration code to
	ILThreadSetExecContext & friends so that threads never registered
	for managed execution can still get interrupts.
	
	* engine/unroll_arith.c: Added integer overflow & divide by zero
	check elimination code.
		
	* support/interlocked_any.h, support/interlocked_x86.h: Added 
	ILInterlockedMemoryBarrier implementation.
	
	* support/interrupt.c: Modified interrupt registration functions
	to use new generic arguments.
	
	* support/interupt.h, support/interrupt_posix.c,
	support/interrupt_win32.c: Added checks * support for divide by
	zero and overflow interrupts.
	
	* support/thr_defs.h, support/thread.c: Made sure interrupt handler
	field of threads is included onl if interrupts are supported.	

2004-06-17  Thong Nguyen  <tum@veridicus.com>

	* libgc/win32_threads.c, libgc/include/gc.h: Removed
	WINAPI/stdcall from GC_CreateThread.
	
	* support/interrupt.h: Disabled support for interrupt
	based illegal memory access handling on CYGWIN builds because
	SetUnhandledExceptionFilter doesn't work on CYGWIN.
	Could possibly use sigaction for CYGWIN builds once its fully
	supported (end of 2004 aparently).
	
	* libffi/src/x86/win32.S: Changed ffi_prep_args to
	_ffi_prep_args so that it links properly on VC++ as well as gcc.

	* include/il_values: Fixed IL_MIN_INT64 & IL_MAX_IN64 definitions
	for windows/gcc builds.
	
	* support/getcwd.c: Included direct.h for windows builds so
	that getcwd is properly prototyped.
	
	* configure.in: Added check for direct.h
		
2004-06-16  Thong Nguyen  <tum@veridicus.com>

	* engine/cvm_ptr.c: Removed null check elimination in COP_CKNULL.
	
	* engine/unroll_ptr.c: Unrolled COP_CKNULL opcode.

	* support/wait_mutex.c: Removed some unused locals.
	
	* support/interrupt_win32.c, support/interrupt_posix.c: Tidied
	up formatting, fixed signal() handling for posix.
	
	* support/thr_choose.h: Include system thread headers even if
	boehm gc is used because it doesn't always include them.
	
	* support/w32_defs.c, support/w32_defs.h: Removed windows.h 
	include because it can override boehms CreateThread macros.

	* libgc/include/gc.h: Enabled GC_CreateThread prototype decl
	on cygwin builds.

	* engine/engine.h, engine/thread.c: Removed
	_ILThreadExecuteOn/_ILThreadUnexecuteOn.  Added 
	ILThreadExecContext struct and _ILThreadSetExecContext,
	_ILThreadSaveExecContext, _ILThreadRestoreExecContext,
	_ILThreadClearExecContext.
	
2004-06-14  Thong Nguyen  <tum@veridicus.com>

	* support/hb_gc.c: Fix ILGCDisableFinalizers not atomically
	checking existing disable status.
	
	* configure.in: Added check for sys/ucontext.h, exit, _exit,
	siglongjmp and sigsetjmp.
	
	* include/il_thread.h: Added ILInterruptContext and added it
	as the only argument for ILIllegalMemoryAccessHandler.
	
	* support/interrupt.c: Updated formatting.
	
	* support/interrupt.h: Added implementation of ILInterruptContext
	for x86 and generic platforms.  Added support for posix systems.
	
	* support/interrupt_posix.c: Added interrupt support for posix
	systems using sigaction or signal if availab.e  Added support
	for x86 interrupt register contexts.
	
	* support/interrupt_win32.c: Added support for x86 interrupt
	register contexts.
	
	* engine/cvm.c: Added support for interrupt based null pointer
	checks.  Added macros for saving & restoring correct state needed
	after synchronous interrupts using either interrupt contexts
	or the thread object.  
	
	* engine/cvm_interrupt.c: Implementation of code required to setup
	interrupt based null pointer handling inside ILCVMInterpreter.
	
	* engine/cvm_call.c: Removed prefixThrowException label.
	
	* engine/cvm_call.c, engine/cvm_except.c, engine/cvm_inline.c,
	engine/cvm_ptr.c, engine/cvm_stack.c, engine/unroll_ptr.c:
	Changed mull checks so they use the  new 
	BEGIN_NULL_CHECK/END_NULL_CHECK macros which allows the null 
	checks to be eliminated.  Added calls to backup exception state 
	at vital points required for interrupt based exception handling.
	
	* engine/engine.h: Added IL_USE_INTERRUPT_BASED_NULL_POINTER_CHECKS
	definition.  Fixed definitions of ILExecThreadAbortThread and
	ILExecThreadSuspendThread.  Added interruptContext to ILExecThread.
	
	* engine/thread.c: Added illegal memory access interrupt handler
	for NullReferenceExceptions.	
	
2004-06-14  Thong Nguyen  <tum@veridicus.com>

	* tests/test_thread.c: Changed thread_other_object test
	to account for new semantics for ILThread objects and
	start args.
	
	* configure.in: Added checks for setjmp.h, setjmp,
	longjmp, signal, sigaction, abort, exit and _exit.

	* include/il_thread.h: Added prototypes for new interrupt
	functions.  Changed ILThread's objectArg to startArg.
	Added a general purpose monitor to ILThread.
	
	* include/il_engine.h: Removed ILExecThreadFromThread
	and ILExecThreadGetClrThread because they are unsafe.
	Added ILExecThreadCurrentClrThread.
		
	* support/Makefile.am: Added interrupt.c, interrupt_posix.c
	and interrupt_win32.c.
	
	* support/interrupt.c, support/interrupt.h, interrupt_posix.c,
	support/interrupt_win32.c: First check-in of interrupt/signal
	support.
	
	* support/thr_defs.h: Added ownedMutexes list to _ILWakeup.
	Added objectArg/startArg fields to ILThread.  Changed
	IL_WAIT_EVENT value from 0x1004 to 0x800 (non mutex).
	Added prototypes for interrupt subsystem init/deinit.
	
	* support/thread.c: Added interrupt subsystem init/deinit
	calls.  Changed startArg/objectArg naming.  Added
	ILThreadGetMonitor.
	
	* support/wait_mutex.c: Added support for storing/maintaining
	owned mutex lists for each wakeup/thread.
	
	* support/wakeup.c: Made wakeups release all mutexes they
	still own before they destroy themselves.
	
	* engine/cvm_call.c: Changed CHECK_ABORT to CHECK_MANAGED_BARRIER
	and added support for thread suspends.
	
	* engine/engine.h, engine/thread.c: Added support for interrupts
	and thread suspends.  Added new safe point aware implementation 
	of  _ILExecThreadAbort and _ILExecThreadSuspend.  Added support
	for abandoning thread creation if the target process is unloading.
	
	* engine/heap.c: Changed call to ILExecThreadCreate to account
	for new arguments.
	
	* engine/lib_thread.c: Updated calls to ILExecThreadAbort to use
	new arguments.  Added new implementation _IL_Thread_Suspend.
	
	* engine/process.c: Simplified thread abort code in ILExecProcess
	destroy by preventing new threads from being created when an 
	ILExecProcess is unloading using the new process state flag.
	
2004-06-14  Thong Nguyen  <tum@veridicus.com>

	* support/wakeup.c: Changed ILWakeupSignal so that it indicates
	if the target wakeup was signalled or just had a limit count
	change.  This prevents a thread waiting inside WaitAll for handles
	a && b from blocking threads waiting inside WaitOne for handle
	a || b.
	
	* include/il_utils.h, support/queue.c: Moved definition of
	Queue structure to a private structure of queue.c
	
	* include/il_utils.h, support/list.c: Added support for general
	purpose lists and two implementations (SinglelyLinkedList
	& ArrayList).
	
2004-06-13  Thong Nguyen  <tum@veridicus.com>

	* support/thread.c: Added supporting for threads that need to
	destroy themselves when they exit (The public ILThreadDestroy
	API still doesn't allow threads to destroy themselves).
	Allow ILThreadSuspend to be aborted.
	Made ILThreadAbort resume the thread if has suspended.
	Made _ILThreadSuspendRequest flag itself as IL_TS_SUSPENDED_SELF
	so that it will be correctly woken up when it is resumed.
	
2004-06-12  Thong Nguyen  <tum@veridicus.com>

	* include/il_gc.h, support/def_gc.c, support/hb_gc.c: Added timeout
	& return values to ILGCinvokeFinalizers & ILGCDisableFinalizers.
	
	* support/hb_gc: Tidy up finalization code.  Added support for
	running finalization on the main thread if there is only one thread
	(for performance).  Added support for interruption/abortion
	of ILGCInvokeFinalizers & ILCDisableFinalizers.
	
	* support/thr_defs.h, support/thread.c: Removed TerminateThread from
	ILThreadDestroy because it is unsafe and deferred destroying until
	the thread is actually finished.
	
	* support/w32_defs.h: Included windows.h.

	* engine/convert.c, engine/heap.c: Updated calls to
	ILGCDisableFinalizers & ILGCInvokeFinalizers with timeouts.
	
	* engine/cvm_call.c: Refactored CHECK_ABORT so it uses the new
	_ILExecThreadSelfAborting function.
	
	* engine/engine.h, engine/thread.c: Added _ILexecThreadAbort,
	_ILExecThreadSelfAborting, _ILExecThreadHandleWaitResult.
	
	* engine/cvm.h, engine/cvm_lengths.c: Added lengths for new CVM
	instructions.
	
	* engine/lib_gc.c: Added support for interruption/abortion of
	GC.InvokeFinalizers.
	
	* engine/lib_monitor.c, engine/lib_thread.c: Updated calls to
	_ILHandleWaitResult/_ILExecThreadHandleWaitResult.
	
	* engine/lib_thread.c: Updated abort implementation to use
	new functions inside thread.c.
	
	* engine/process.c: Rewrote ILExecThreadDestroy to be cleaner
	and handle long running finalizations.
	
2004-06-12  Llewellyn Pritchard  <leppie@ataris.co.za>

	* ilalink/link_res.c, image/misc_token.c, image/meta_build.c,
	include/il_program.h, ilasm/ilasm_grammar.y, ilasm/ilasm_output.c:
	Fix resource linker bug #9272 (patch #3125, Gopal).

2004-06-11  Gopal V  <gopalv82@yahoo.com>

	* cscc/csharp/cs_oper.tc: Handle AssignAdd operations between Objects and
	Strings as Concats.

	* cscc/csharp/cs_stmt.tc: Reduce if over a constant expression before 
	doing the flow analysis. (fix bug #9291)

2004-06-10  Gopal V  <gopalv82@yahoo.com>

	* cscc/csharp/cs_lvalue.tc: Use CSSemSetConstant instead of CSSemSetRValue
	for local consts. (fix bug #9273)

	* engine/verify_call.c: Pop the this parameter if the inlined method
	does a constant store.

2004-06-09  Gopal V  <gopalv82@yahoo.com>

	* engine/verify_call.c: Load the user strings from the image of
	the inlined method to inline ldstr.

2004-06-09  Thong Nguyen <tum@veridicus.com>

	* include/il_coder.h: Added GetFlags to ILCoder.
	
	* engine/cvm.h: Added new opcodes for inlining Math.* functions.
	
	* engine/cvm_inline.c: Added implementation of inlined Math functions.
	
	* engine/cvmc.c, engine/null_coder.c: Added CVMCoder_GetFlags.
	
	* engine/cvmc_call.c: Added code generation for inlined Math
	functions.
	
	* engine/cvmc_setup.c: Added CVM implementation of Coder_GetFlags.
	
	* engine/ilrun.c: Added "--stats"/"-Z" command line option.

	* engine/verify.c: Added coderFlags cache variable.
		
	* engine/verify_call.c: Added support for inlining simple properties
	and methods that return a field or constant value.  Added support
	for inlining math functions.
	
2004-06-08  Gopal V  <gopalv82@yahoo.com>

	* codegen/cg_coerce.c: Coerce the arguments to the conversion methods
	while creating UserConversion nodes.

	* cscc/c/c_const.tc: Add ILNode_GetType for CString and CWString so
	that they return UnmanagedPtr instead of String machine types.

	* cscc/csharp/cs_gather.c, codegen/cg_nodes.tc: Track the nested class
	creation order in a seperate list in each parent class definition and
	create members in the proper order.

	* cscc/csharp/cs_cast.tc: Fix stupid typo where "69" is passed where
	a "1" is expected.

	* cscc/csharp/cs_cast.c: Allow null to be casted to System.IntPtr even
	outside unsafe mode (fixes bug #8207)

	* codegen/cg_lvalue.tc: Use PrepareForThis access for indexers on
	valuetypes as well.

2004-06-07  Gopal V  <gopalv82@yahoo.com>

	* cscc/csharp/cs_lvalue.tc: Fix type bug in constant field accesses 
	from enums.

2004-06-02  Thong Nguyen  <tum@veridicus.com>

	* image/class.c: Change ILClassImplements to return true
	if the class and interface are the same (i.e. interfaces
	implement themselves).

2004-06-02  Gopal V  <gopalv82@yahoo.com>

	* cscc/csharp/cs_lvalue.tc: Add line number information for ArgumentVar
	and RefArgumentVar nodes created during SemanticAnalysis.

2004-06-02  Thong Nguyen  <tum@veridicus.com>

	* support/hb_gc.c: Changed GCNotifyFinalize to not wait for
	finalizers.  If GCNotifyFinalize is called by the allocator,
	it should not block the allocating thread while waiting for
	finalizers as that will cause deadlock if the allocating thread
	holds locks the finalizer thread requires.
	
	* image/class.c: Fix CompareUnicode not working properly when
	ignoreCase is true.
	
	* image/java_writer.c: Remove pointer on void * to remove
	compiler warning.
	
2004-05-30  Thong Nguyen  <tum@veridicus.com>

	* engine/lib_monitor.c: Removed value type checks for Monitor.Enter.
	
	* engine/verify.c: Added checks for synchronized methods and
	generated appropriate exception code.
	
	* engine/verify_call.c, engine/verify_except.c: Generated code
	for exiting synchronized methods on throw & return.	
	
2004-05-30  Gopal V  <gopalv82@yahoo.com>

	* engine/verify_branch.c: Fix compilation for 64bit platforms 
	(patch #3109, from Andrzej Dopierala <undefine@pld-linux.org>)

	* engine/lib_reflect.c: Implement Assembly.GetExportedTypes()
	partially.

2004-05-29  Gopal V  <gopalv82@yahoo.com>

	* engine/lib_reflect.c: Implement Module.GetTypes() for assembly
	modules (bug #9085).

	* engine/method_cache.c: fix IL offsets to be obtained if the offset
	provided matches with the native offset provided. (bug #9151)

2004-05-29  Rhys Weatherley  <rweather@southern-storm.com.au>

	* NEWS, configure.in: update version for the "0.6.6" release.

	* configure.in: update working version to "0.6.7".

2004-05-28  Thong Nguyen <tim@veridicus.com>

	* engine/lib_time.c: Fixed overflow/underflow by 1000 bug in
	GetUpTime.  Made sure that calculated 64-bit value can't be 
	over IL_MAX_INT32 to prevent negative values when casting 
	back to ILInt32.
	
	* support/time.c: Implemented ILGetSinceRebootTime for windows
	systems.
	
	* engine/verify.c, engine/verify_except.c: Add currentException
	declaration to top of verify method.  Verify that a IL_OP_ENDFINALLY
	occurs without a finally clause.
	
2004-05-28  Thong Nguyen <tum@veridicus.com>

	* include/engine.h: Changed ILExecInit to return an error code
	and defined some error codes.
	Added ILExecThreadIsThreadAbortException as an exported engine
	function for use by embedders when printing out exceptions.

	* engine/engine.h: Removed definition of _ILExecThreadITAE.
	Added extern declaration of globalTraceMutex.

	* engine/cvm.c: Added definition of globalTraceMutex.
		
	* engine/cvm_call.c: Changed COP_PREFIX_PROFILE_COUNT to use
	ILInterlockedIncrement to increment method count.
	Put locks around COP_PREFIX_TRACE_IN and COP_PREFIX_TRACE_OUT.
	
	* engine/ilrun.c, lib_thread.c, throw.c, cvm_except.c: Updated 
	_ILExecThreadIsThreadAbortException references because of name
	change.
	
	* engine/ilrun.c: Added to check to make sure ILExecInit suceeded.
	
	* engine/process.c: Added globalTraceMutex initialization
	to ILExecInit and deinitialization to ILExecDeinit.
	
	* libgc/win32_threads.c: Made GC_CreateThread CYGWIN wrapper
	faster by removing need to dynamically allocate/free memory.
	
2004-05-26  Thong Nguyen <tum@veridicus.com>

	* support/dir.c: Fix for Win32 version of ILCloseDir (return
	1 rather than 0 on success).
	
	* support/file.c: Set file mode to binary mode on calls
	to ILSysIOOpenFile if system is windows.  Windows defaults
	to text mode (unbelievable!) causing files to randomly not 
	open properly.

	* support/w32_defs.h: Include <windows.h> cause libgc
	no longer does this for us.
	
	* libgc/***: Checked libgc 6.3alpha6.
	
	* libgc/win32_threads.c: Added CreateThread wrapper around
	pthread_create for CYGWIN environments so that we can
	safely use CreateThread when building under CYGWIN.
	Removed GC allocater calls when threads are created and
	used malloc/free instead.  Using the GC allocator while
	creating a thread when using CYGWIN causes deadlocks.
	
	* engine/monitor.c: Fix "lockword"/"lockWord" casing error on line 211.
		
2004-05-26  Thong Nguyen <tum@veridicus.com>

	* Most changes are for supporting Thread.Abort.

	* include/il_program.h, image/member.c: Added ptrUserData
	field to ILException structure.
	
	* include/il_coder.h: Added endCatchFinallyClause and
	finally clause to ILCoder structure.
	
	* include/il_engine.h: Added prototypes for
	ILExecThreadFromThread, ILExecThreadGetClrThread
	and ILExecThreadThrow.
	
	* include/il_thread.h, support/thread.c: Added prototype
	and implementation of ILThreadIsAbortRequested.

	* engine/cvm.h: Added COP_PREFIX_START_CATCH,
	COP_PREFIX_START_FINALLY and COP_PREFIX_PROPAGATE_ABORT.
	
	* engine/cvm_call.c: Added CHECK_ABORT, BEGIN_NATIVE_CALL
	and END_NATIVE_CALL macros.  The *NATIVE_CALL functions
	configurestate to allow the runtime to figure out if it is
	running managed or unamnaged code.  CHECK_ABORT is used to
	check for aborts after a function call so aborts can be
	initiated at most points in a thread's life.
	
	* engine/cvm_except.c: Added cases for COP_PREFIX_START_CATCH,
	COP_PREFIX_START_FINALLY and COP_PREFIX_PROPAGATE_ABORT.
	
	* engine/cvmc.c, engine/cvmc_except.c: Added
	CVMCoder_EndCatchFinally and CVMCoder_Finally function entries
	and implementation.  Added generation of new COP_PREFIX_*
	instructions.	 
	
	* engine/engine.h: Added abortRequested, runningManagedCode,
	currentException, threadAbortException, abortHandlerPC and
	abortHandlerNumFrames fields to ILExecThread.
	
	* engine/engine.h, engine/thread.c, engine/throw.c: Removed
	_ILGetCurrentClrThread and added ILExecThreadGetClrThread.
	Removed ILEXecThreadThrowThreadAbortException and added
	_ILExecThreadNewThreadAbortExceptio
	and _ILExecThreadIsThreadAbortException.
	
	* engine/ilrun.c, engine/lib_thread.c: Allow threads to display
	exceptions even if the thread is aborting but only if it isn't a
	ThreadAbortException.
	
	* engine/lib_defs.h: Added createdFromManagedCode field
	to System_Thread.
	
	* engine/lib_thread.c: Changed CLR thread object finalization
	to not free up the underlying thread unless the thread
	was created from within managed code.
	Reimplemented Thread.Abort internal call -- made thread safe
	to aborts to be safely called on dead/dying threads.
	
	* engine/null_coder.c: Added null definitions for Coder_Finally
	and Coder_EndCatchFinally.
	
	* engine/verify_except.c: Changed coder JSR calls to Finally
	calls.  Added EndCatchFinally call on IL_OP_LEAVE and
	IL_OP_ENDFINALLY.
	
2004-05-24  Norbert Bollow  <nb@SoftwareEconomics.biz>

	* configure.in, engine/Makefile.am, engine/cvm.c: fixes to
	make ilrun build with gcc 3.4.0

2004-05-24  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/verify_except.c: reverse OutputExceptionTable patch
	as Tum discovered problems with it.

	* engine/verify_except.c (OutputExceptionTable): fix the nested
	try/catch bug (#8838) properly.

2004-05-23  Jonas Printzen  <jonas@printzen.net>

	* engine/verify_except.c: change OutputExceptionTable() so that 
	nested try/catch don't loose outer try/catch. Also removes 
	duplication of try-handlers when multiple catch exist for same 
	try region. (patch #3059, Gopal)
	
2004-05-21  Gopal V  <gopalv82@yahoo.com>

	* engine/process.c: Ensure that mis-compiled libraries cannot 
	divert the entry point , has to be in an .exe not a .dll.

2004-05-19  Thong Nguyen <tum@veridicus.com

	* support/def_gc.c: Fixed function def for ILGCCreateTypeDescriptor.
	
	* support/thread.c: Prevent ILThreadDestroy from destroying the
	main thread.
	
2004-05-18  Gopal V  <gopalv82@yahoo.com>

	* codegen/cg_gen.h, cscc/csharp/cs_invoke.tc, 
	cscc/csharp/cs_lvalue.tc: Hack up the instance vs static method 
	disambiguation where a property with the same name as a type exists,
	using an ILGenInfo flag. (bug #8629)

2004-05-18  Gopal V  <gopalv82@yahoo.com>

	* engine/lib_type.c: Include interfaces inherited by a type in
	Type.GetInterfaces().

2004-05-18  Thong Nguyen  <tum@veridicus.com>

	* include/il_engine.h: Added prototype for ILExecThreadBoxNoValue.
	
	* engine/box.c: Added implementation of ILExecThreadBoxNoValue.
	
	* engine/lib_reflect.c: Added support for dynamically invoking
	methods with out/ref params (allowing null params to be passed
	to functions with out/ref value types) (InvokeMethod).
	
	* image/meta_types.c: Added ILTypeIsSystemClass function.
	Modified ILTypeGetDelegateBeginInvokeMethod and
	ILTypeGetDelegateEndInvokeMethod to verify the parameters
	against the delegate Invoke method.
	
	* include/il_types.h: Added prototype for ILTypeIsSystemClass.
	
	* engine/lib_delegate.c: Implemented SetOutParams internal
	call.  Added support for returning out/ref parameters in
	Delegate_EndInvoke.
	
	* engine/cvm_call.c: Modified _ILPackVarArgs to recognise and 
	properly pack byref arguments.
	
	* engine/lib_reflect.c: Allow null args to be passed for value-type
	params.
	
2004-05-17  Russell Stuart  <russell-savannah@stuart.id.au>

	* pnet.spec.in: try and kludge my way around "rpm" hanging
	when the info files are installed / uninstalled.

2004-05-15  Gopal V  <gopalv82@yahoo.com>

	* engine/lib_reflect.c , engine/int_proto.h, engine/int_table.c:
	Add the ClrConstructor::InvokeOnEmpty() internal call.

2004-05-14  Richard Baumann  <biochem333@nyc.rr.com>

	* cscc/csharp/cs_gather.c: modify the access modifier checks for
	overrides to allow protected overrides of protected internal virtuals
	if, and only if, the derived class is in a separate assembly from the
	base class.

	* cscc/.cvsignore, tests/.cvsignore: ignore more items generated by
	the build.

2004-05-15  Thong Nguyen  <tum@veridicus.com>

	* include/il_engine.h: Added prototype for ILExecProcessUnload.
	Documented semantics for ILExecProcessDestroy and
	ILExecProcessUnload.
	
	* engine/cvm_call.c: Renamed StackWordsForType to
	_ILStackWordsForType and made it public.
	
	* engine/engine.h: Added prototype for _ILStackWordsForType.
	
	* engine/lib_delegate.c: Added more error checking and removed
	assumptions about stack placement that prevented async method
	calls from working with non-word sized values.
	
	* engine/process.c: Modified ILExecProcessDestroy() to destroy
	all threads including the main thread (if it isn't the finalizer
	thread) before calling finalizers so that all references on the 
	CVM stack will be removed.  On systems where a user thread
	can't be destroyed because it's shared with the finalizer thread,
	the CVM stack is cleared instead.
	Added null implementation for ILExecProcessUnload().
	
	* engine/monitor.c: Clear lockwords if reusing monitor entries
	from dead objects.
		
2004-05-14  Thong Nguyen  <tum@veridicus.com>

	* image/meta_types.c: Added ILTypeGetDelegateBeginInvokeMethod
	and ILTypeGetDelegateEndInvokeMethod.
	
	* include/il_types.h: Added prototypes for
	ILTypeGetDelegateBeginInvokeMethod and
	ILTypeGetDelegateEndInvokeMethod.
	
	* engine/engine.h: Added prototype for _ILPackVarArgs.
	
	* engine/cvm_call.c: Changed PackVarArgs to _ILPackVarArgs
	and made it accessible from other modules.
	
	* engine/lib_delegate.c: Added internal implementation
	of Delegate.BeginInvoke and Delegate.EndInvoke.  Refactored
	some code and added InternalFuncs table to reduce code
	duplication between Delegate.Invoke and Delegate.Begin/EndInvoke.
	UPDATE: Fixed incorrect unboxing of reference return values/
	
2004-05-12  Thong Nguyen  <tum@veridicus.com>

	* engine/thread.c: Change ILThreadExecuteOn so that it
	associates ILExecThreads with ILThreads both ways.
	Added ILThreadUnexecuteOn function as the opposing
	complement of ILThreadExecteOn.
	
	* engine/engine.h: Added prototype for ILThreadUnexecteOn.
	
	* engine/heap.c: Moved Finalize method lookup code
	from _ILFinalizeObject into a new method (FindFinalizMethod).
	Fixed _ILFinalizeObject so that it properly associates
	the finalizer thread with the engine thread that the finalizer
	thread uses for its execution context.
	
2004-05-10  Thong Nguyen  <tum@veridicus.com>

	* support/interlocked_x86.h:  Make ILInterlockedDecrement
	return decremented value not incremented value.
	
	* engine/lib_monitor.c:  Fixed some spelling mistakes in
	the documentation.  Removed some benign test code.
	
	* support/no_defs.h: Add definition for _ILThreadYield.
	
	* support/thread.c: Fixed ILThreadDestroy decrementing
	thread count incorrectly if a thread had been created but
	not started.
	
	* tests/test_thread.c: Changed background thread count check
	to allow 0 (not just 1) because GC thread is created only when
	needed.  Changed thread_sleep_interrupt to check for
	return value of IL_WAIT_INTERRUPTED instead of 0.
	
2004-05-10  Gopal V  <gopalv82@yahoo.com>

	* support/interlocked.h : Remove CRLFs from file.

2004-05-10  Thong Nguyen  <tum@veridicus.com>

	* profiles/full: Made full profile use standard locks.
		
	* profiles/full-tl: New full profile with thin-locks.
	
	* profiles/compact: Made compact profile use thin-locks.

	* profiles/compact-fp: Made compact-fp profile use thin-locks.
	
	* profiles/kernel: Made kernel profile use thin-locks.

	* profiles/kernel-fp: Made kernel-fp profile use thin-locks.
	
	* include/lib_gc.h: Added prototypes for ILGCCreateTypeDescriptor
	and ILGCAllocExplicitlyTyped.
	
	* include/il_thread.h: Added prototype for ILThreadSelfAborting.
	Added IL_JOIN_UNSTARTED const.  Added prototype of ILThreadYield.
	Added consts for IL_WAITMUTEX_RELEASE results.  Removed protypes
	for ILWaitMonitorSpeculativeLeave, ILWaitMonitorCompleteLeave,
	ILWaitMonitorCanClose.

	* engine/lib_monitor: Moved implementation of internal calls
	for Monitor from lib_thread.c to lib_monitor.c.
	Added long comment on how the monitor algorithms work.
	Refactored a lot of code for simplification and naming consistancy.
	Fixed monitor leak when monitors are entered but never exited
	before an object is collected.
	Simplified algorithm by allocating monitors on the GC-heap.
	Removed all globals locks on the critical path and many
	global locks on less critical paths.
	Made lib_monitor.c aware of some support/ structures for
	additional speed.
	Modified standard algorithm to support fast releases.
	Modified standard algorithm to support fast aquires for
	recursive calls to enter.
	Standard algorithm is now ~20 times faster in uncontested
	and ~150 times faster in recursive lock cases.  Thin lock
	algorithm is now faster than the old standard algorithm.
	
	* engine/Makefile.am: Added lib_monitor.c to source list.
	Added libgc/include and support/ to the include files to the
	include file search path.
	
	* engine/dumpconfig.c:  Added reference to IL_CONFIG_THIN_LOCKS.
	Added parenthesis to call to ILHasThreads.
	  
	* engine/engine.h: Added freeMonitorCount to ILExecProcess.  Added
	gcTypeDescriptor field to ILClassPrivate.  Added references to
	IL_CONFIG_THIN_LOCKS.  Added definitions for ILExecMonitorProcess
 	Create and ILExecMonitorProcessDestroy.
 	
 	* engine/heap.c: Changed ILGCalloc(*) not allocate header space
 	if the block isn't going to be used for a managed type.  Made 
 	ILGCAllocAtomic use typed-allocation so that the monitor in the 
 	object header of primitive-type arrays will not be prematurely
 	collected.
 	
 	* engine/ilrun.c: Changed ilrun to only print exceptions at the
 	end if the thread isn't aborting.
 	
 	* engine/layout.c: Added initialization of default value for
 	gcTypeDescriptor.
 	
 	* engine/lib_defs.h: Tidied up lockword macros & definitions.
 	
 	* engine/lib_thread.c:  Moved implementation of internal calls for
 	System.Threading.Monitor to lib_monitor.c.  Rewrote abort handling
 	code.  Modified the Interlocked functions to use the new interlocked
 	definitions from pnet/support.  Changed SpinWait to use ILThreadYield.
 	
 	* engine/monitor.c: Fixed monitor allocation/retrieval bug in
 	thin-lock implementation.  Added monitor-specific initialization
 	procedures for ILExecProcess.
 	
	* engine/process.c: Removed monitor initialization routines and added
	calls to ILExecMonitorProcessCreate and ILExecMonitorProcessDestroy.
	
	* engine/thread.c: Remove freeMonitor deletion code because monitors
	are now freed by the garbage collector.
	
	* engine/throw.c: Prevent new exceptions from being thrown if the
	thread is currently aborting.
	
	* support/def_gc.c: Added implementation of ILGCCreateTypeDescriptor
	and ILGCAllocExplicitlyTyped.
	
	* support/hb_gc.c: Added implementation of ILGCCreateTypeDescriptor
	and ILGCAllocExplicitlyTyped.
	
	* support/pt_defs.h: Added implementation of ILThreadYield.
	
	* support/interlocked.h: Support for interlocked functions.
	
	* support/interlocked_any.h: Platform neutral implementation of
	interlocked functions.

	* support/interlocked_x86.h: x86 implementation of interlocked
	functions.

	* support/thread.c: Tidied and refactored code.  Added
	IL_TS_RUNNING state to threads that are running.  Made
	ILThreadWaitForForegoundThreads ignore interrupts/aborts.
	Added implementation of ILThreadSelfAborting.  Fixed ILThreadJoin
	so that it returns IL_JOIN_UNSTARTED if the thread hasn't been
	started.
	
	* support/w32_defs.h: Added implementation of ILThreadYield.
	
	* support/wait.c: Fixed bug where abort & interrupts could be
	detected twice.  Made the wait functions work even when the
	thread is aborting (made them respond differently to abort
	requests than they do to aborts underway).
	Added _ILWaitOneBackupInterruptsAndAborts implementation.
	
	* support/wait_mutex.c: Allow monitors to be destroyed even
	if they are owned.  Remove FastClaim.  Removed
	PrivateILWaitMutexRelease and moved simplified implementation
	into ILWaitMutexRelease.  Refactored ILWaitMonitorPulse
	and ILWaitMonitorPulseAll into one inline function
	(PrivateILWaitMonitorPulse.  Made ILWaitMonitorWait not
	return until it can reaquire the monitor even if it is
	interrupted or aborted.
	Removed implementation of ILWaitMonitorSpeculativeLeave,
	ILWaitMonitorCompleteLeave, ILWaitMonitorCanClose.
	
	* support/wait_mutex.h: Inline definitions for
	ILWaitMutexThreadOwns, ILWaitMutexFastEnter and
	ILMutexFastRelease.
	
2004-05-09  Gopal V  <gopalv82@yahoo.com>

	* engine/lib_object.c : Resolve classes before laying them out
	or converting them to ILObject . (fixes IsAssignableFrom problems).

2004-05-08  Russell Stuart  <russell-savannah@stuart.id.au>

	* codegen/cg_stmt.tc: make "goto case" emit a leave when
	in a try block. (bug #8834)

	* cscc/common/cc_preproc.c: ignore ';' after #endregion.
	(bug #8208)

2004-05-04  Gopal V  <gopalv82@yahoo.com>

	* engine/verify_call.c: Ignore signature comparisons for
	unsafe mode indirect calls

2004-05-04  Thong Nguyen <tum@veridicus.com>

	* support/thread.c: Changed ILThreadSleep to return
	abort/interrupt results.
	
	* include/il_thread.h: Documented new return values
	for ILThreadSleep.
	
	* engine/lib_thread.c: Made Thread.Sleep internal call
	aware of and handle interrupts and aborts.
	
2004-05-04  Thong Nguyen <tum@veridicus.com>

	* support/wait_mutex.c: Changed ILWaitMonitorFastClaim to
	check and respond to thread abort requests.
	
	* support/thr_defs.h: Added defs for EnterWait and LeaveWait.
	
	* support/wait.c: Made EnterWait and LeaveWait non-static,
	shared methods so that they can be used by wait_mutex.c.
	
	* support/wait_mutex.c: Made ILWaitMonitorWait change
	the state of the thread to waiting so that it can be aborted.

	* support/wait_mutex.c: Fixed bug in ILWaitMonitorWait
	which caused it to sometimes miss Pulse signals.
	Added support for ILWaitMonitorFastClaim.
	
	* support/wakeup.c: Added comment about how/when to set
	wakeup limits.
	
	* include/il_thread.h: Added definition for
	ILWaitMonitorFastClaim.
	
	* engine/lib_thread.c: Added optimisations for monitor.enter
	and monitor.leave.
	
	* support/thr_defs.h: Added waiters field to ILMonitor.
	
	* support/wait_mutex.c: Made ILWaitMonitorWait notify
	threads already tring to enter before waiting itself.
	Added code to prevent monitors from being closed if they
	are in a wait state (especially if they in between getting
	our of the wait queue and entering the ready queue).
	This fixes a race between ILWaitMonitorTryEnter and
	ILWaitMonitorWait.
	
	* engine/monitor.c: Initialize monitor->owner to null.
	
	* engine/lib_thread.c: Simplified and tidied a lot of
	monitor enter/leave/wait/pulse code by tracking the current
	monitor's owner thread.
	
2004-04-29  Gopal V <gopalv82@yahoo.com>

	* engine/lib_type.c: Type.GetType picks up types from the caller 
	method's image if not found in the system library.

	* engine/lib_type.c: Roll back last patch as it was the opposite
	order as per specification .

	* engine/lib_type.c: Load the referenced assembly if it is not
	already loaded in the context.

	* engine/lib_type.c: Override check should check for just identical
	types and then pick the latest.

2004-04-28  Ilyak Kasnacheev  <ilyak@office.uw.ru>

	* image/link.c : Remap a few more gtk# related dll references.
	(patch #2886, Gopal)

2004-04-26  Thong Nguyen <tum@veridicus.com>

	* engine/engine.h: Added owner field to ILExecMonitor.
	
	* engine/lib_thread.c: Added checking to ensure the current thread
	owns the monitor to Exit, Wait, Pulse and PulseAll.
	Added valid monitor checking to Monitor.Wait (fixes a null 
	derefernce when no monitor exists).
	
2004-04-24  Gopal V <gopalv82@yahoo.com>

	* cscc/c/c_lvalue.tc: Allow array access to happen on Managed
	arrays. (bug #8638)
	
	* engine/verify_branch.c: Treat I stack values the same as I4 or 
	I8 values depending on the native int size.

2004-04-22  Gopal V <gopalv82@yahoo.com>

	* cscc/cscc.c: Add a NULL sentinel while doing an AddArgument.
	(bug #8655)

2004-04-21  Russell Stuart  <russell-savannah@stuart.id.au>

	* engine/lib_dir.c: System.IO.Directory.GetFiles was throwing
	System.IO.IOException - interrupted system call.

2004-04-19  Gopal V <gopalv82@yahoo.com>

	* cscc/csharp/cs_lvalue.tc: Roll back the changes made yesterday
	as it broke the build .

	* cscc/csharp/cs_lvalue.tc, csharp/cscc/cs_gather.c: Load up types
	directly using ILFindNonSystemType and make sure all types are 
	resolved properly during type gather.

	* cscc/csharp/cs_semantics.tc, cscc/csharp/cs_lvalue.tc: Resolve
	aliases for fully qualified namespaces as well. (bug #5806)

2004-04-18  Gopal V <gopalv82@yahoo.com>

	* cscc/csharp/cs_lvalue.tc: Call ILNode_SemanalysisType for 
	resolving node->left for QualIdent and MemberAccess (bug #6999)
	
2004-04-01  Russell Stuart  <russell-savannah@stuart.id.au>

	* csant/csant_task.c, include/il_sysio.h, support/dir.c:
	Add support for <delete dir=...> to csant (patch #2827).

	* csant/csant_task.c: add <copy todir=...> to csant (patch #2829).

	* doc/pnettools.texi: update csant documentation.

2004-03-27  Gopal V <gopalv82@symonds.net>

	* cscc/common/cc_compat.c: Add a quick fix to support the 
	/recurse:*.cs and -recurse:*.cs option for cscc

2004-03-21  Rhys Weatherley  <rweather@southern-storm.com.au>

	* support/expand.c: implement Win32-specific filename expansion.

	* configure.in: disable zlib under mingw32 because it links in
	"mgwz.dll" when we don't want it to.

2004-03-19  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_ainit.tc, cscc/c/c_internal.h, cscc/c/c_lvalue.tc:
	fix the handling of nested structure initializers; add support
	for initializing complex structures.

	* engine/verify_branch.c: allow I and M/T values to be compared
	in unsafe mode.

	* engine/verify_arith.c: add the I/M and I/T cases to unsafe "sub".

	* cscc/cpp/Makefile.am: use $(EXEEXT) on the symlink for "cscc-cpp"
	(patch #2810).

2004-03-19  Russell Stuart  <russell-savannah@stuart.id.au>

	* csant/csant_build.c: fix a typo (patch #2824).

	* csant/csant_parse.c (RecordDependency): support comma-separated
	lists of target dependencies (patch #2825).

2004-03-19  Gopal.V  <gopalv82@symonds.net>

	* engine/cvm_call.c, engine/cvm_dasm.c, engine/cvm_lengths.c,
	engine/cvmc_call.c, engine/cvmc_gen.h, engine/cvmc_setup.c:
	improve the trace facility by tracing in the callee, not the caller.

2004-03-16  Rhys Weatherley  <rweather@southern-storm.com.au>

	* ilalink/link_library.c, ilalink/link_method.c,
	ilalink/link_module.c, include/il_linker.h: fix strong alias
	linking for vararg methods.

	* cscc/common/cc_preproc.c: fix a problem with Russian characters
	in single-line comments (bug #6190).

	* engine/cvm_config.h, engine/ilrun.1, engine/ilrun.c:
	document the dump and trace options better.

	* engine/cvm_lengths.c: fix the length of "thread_static"
	(thanks to Gopal V for spotting it).

2004-03-16  Gopal.V  <gopalv82@symonds.net>

	* engine/cvm.h, engine/cvm_call.c, engine/cvm_dasm.c,
	engine/cvm_lengths.c, engine/cvmc_call.c, engine/ilrun.c,
	include/il_coder.h: add the "--trace" option to ilrun, which
	provides runtime tracing of all method calls and returns.

2004-03-16  Russell Stuart  <russell-savannah@stuart.id.au>

	* engine/lib_reflect.c: implement "GetManifestResourceNames()".

2004-03-15  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c_main.c, cscc/c/Makefile.am, cscc/c/c_internal.h,
	cscc/c/c_oper.tc, cscc/c/c_types.c, cscc/c/c_typesize.c,
	cscc/c/c_typesize.h: remove reference to the definitions in
	"c_typesize.h" because it is now obsolete.

	* cscc/c/c_lvalue.tc: move some ILGenAdjust calls in the bit field
	code that were in the wrong position.

	* codegen/cg_stmt.tc: fix a stack underflow problem in the
	code generator for switch statements.

	* cscc/c/c_defs.tc, cscc/c/c_lvalue.tc (ILNode_CBitField): fetch the
	"other bits" to be OR'ed with a bit field value during the store,
	not the prepare; otherwise "a->x = a->y = z" won't work correctly.

2004-03-14  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/cscc.1, cscc/cscc.c, cscc/common/cc_main.c,
	cscc/common/cc_options.c, cscc/common/cc_options.h,
	doc/pnettools.texi: add pre-processor dependency options such
	as "-M", "-MD", etc to the C compiler.

	* cscc/common/cc_main.c: use "-MD file" instead of "-M -MF file";
	the GNU cpp documentation is wrong!

2004-03-13  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/Makefile.am, ilranlib/Makefile.am, ilsize/Makefile.am,
	ilstrip/Makefile.am: use $(EXEEXT) on install lines that need it.

	* configure.in: use the correct SOCKETLIBS and -lm settings
	for mingw32 builds.

	* NEWS, configure.in: update version for the "0.6.4" release.

	* configure.in: update working version to "0.6.5".

2004-03-12  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/csharp/cs_lookup.c (ResolveSimpleName): when we move
	out to a nested parent scope, filter out instance members (bug #7597).

	* configure.in: explicitly invoke the shell on the libgc and libffi
	configure scripts, just in case they are not set to executable
	(bug #7406).

	* support/pt_defs.h: check for __USE_UNIX98 before allowing
	read-write locks to be used, as there are some systems that
	define PTHREAD_RWLOCK_INITIALIZER without defining pthread_rwlock_t.

	* cscc/c/c_lexutils.c, cscc/c/c_grammar.y: constants of the form
	"123L" should be converted into a native integer, not int64.

	* cscc/csharp/cs_stmt.tc (ILNode_FixExpr): handle assignment
	of an array to a pointer variable in a "fixed" expression.

	* cscc/csharp/cs_oper.tc: implement pointer comparison,
	addition, and subtraction.

2004-03-12  Gopal.V  <gopalv82@symonds.net>

	* engine/pinvoke.c (PackDelegateParams): process pointer values
	the same as byref values.

2004-03-11  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_declspec.c (CDeclCreatePrototype): deal with a bug
	in the declaration of functions that return a function pointer.

	* cscc/c/c_grammar.y, doc/pnettools.texi: set the default
	PInvoke calling conventions to "cdecl".

	* cscc/c/c_grammar.y (ArrayInitializerSize): handle string
	initializations of the form {"foo"}.

2004-03-11  Russell Stuart  <russell-savannah@stuart.id.au>

	* pnet.spec.in: improve the RPM spec file.

	* configure.in, engine/lib_file.c, include/il_sysio.h,
	support/file.c: implement internalcalls for file attributes
	and file lengths.

	* configure.in, pnet.spec.in: Add "cli-unknown-*" to pnet.spec,
	and also make the treecc version choice automatic.

2004-03-11  Gopal.V  <gopalv82@symonds.net>

	* cscc/csharp/cs_invoke.tc: make sure that "params" array matching
	is only used on the last parameter (bug #8016).

2004-03-10  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_function.c: output the parameter types for
	PInvoke-imported functions.

2004-03-07  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/link.c: look for "pinvoke.map" files when searching for
	native libraries, to deal with systems that lack ".so" symlinks.

	* cscc/c/c_defs.tc, cscc/c/c_invoke.tc, cscc/c/c_lvalue.tc,
	cscc/c/c_types.c, cscc/c/c_types.h: add support for instance
	fields, properties, and methods to the C compiler.

	* doc/c_users_guide.html, doc/pnettools.texi: add some more
	C compiler documentation to pnettools.texi and remove the
	obsolete c_users_guide.html file.

2004-03-07  Ilyak Kasnacheev  <ilyak@office.uw.ru>

	* csant/csant_cscc.c: add missing options for "mcs" compiles.

2004-03-06  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/cpp/Makefile.am, cscc/cpp/obstack.c: add a missing file.

	* codegen/cg_assign.tc, codegen/cg_nodes.tc, cscc/c/.cvsignore,
	cscc/c/Makefile.am, cscc/c/c_ainit.tc, cscc/c/c_builtin.tc,
	cscc/c/c_coerce.c, cscc/c/c_crt0.c, cscc/c/c_declspec.c,
	cscc/c/c_declspec.h, cscc/c/c_defs.tc, cscc/c/c_function.c,
	cscc/c/c_grammar.y, cscc/c/c_internal.c, cscc/c/c_internal.h,
	cscc/c/c_invoke.tc, cscc/c/c_library.c, cscc/c/c_lvalue.tc,
	cscc/c/c_name.tc, cscc/c/c_oper.tc, cscc/c/c_scanner.l,
	cscc/c/c_scope.c, cscc/c/c_stmt.tc, cscc/c/c_typeout.c,
	cscc/c/c_types.c, cscc/c/c_types.h, cscc/csharp/cs_oper.tc,
	doc/c_language_abi.html, dumpasm/dump_type.c, engine/cvmc_obj.c,
	engine/layout.c, ilalink/link_init.c: redesign the type system
	in the C compiler so that it uses dynamic layout for structures
	instead of static layout.

	* ilalink/link_create.c, ilalink/link_library.c, ilalink/link_main.c:
	remove the need for "64.dll" and "32.dll" from the linker.

	* cscc/c/c_internal.c, cscc/c/c_library.c, ilalink/link_class.c,
	ilalink/link_create.c, ilalink/link_image.c, ilalink/link_init.c,
	ilalink/link_library.c, ilalink/link_main.c, ilalink/link_module.c,
	ilalink/link_type.c, ilalink/linker.h, include/il_linker.h:
	change "MemoryModelAttribute" to "ModuleAttribute" for the new ABI.

2004-03-02  Rhys Weatherley  <rweather@southern-storm.com.au>

	* configure.in: detect some extra headers in configure.in for "cpp".

	* cscc/c/c_declspec.c, cscc/c/c_declspec.h, cscc/c/c_defs.tc,
	cscc/c/c_grammar.y, cscc/c/c_invoke.tc, cscc/c/c_library.c,
	cscc/c/c_scanner.l, cscc/c/c_types.c, cscc/c/c_types.h:
	add the "__new__", "__delete__", "__gc", and "__nogc" keywords
	to the C compiler.

	* cscc/c/c_coerce.c, cscc/c/c_lvalue.tc, cscc/c/c_typeout.c,
	cscc/c/c_types.c, cscc/c/c_types.h: modify the ABI so that
	struct types appear as "name" rather than "struct_name";
	do the same for union and enum types also.

2004-03-01  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_lexutils.c, cscc/c/c_lexutils.h, cscc/c/c_scanner.l:
	add support for the "#using" directive to the C compiler.

	* cscc/c_main.c, cscc/c/c_coerce.c, cscc/c/c_declspec.c,
	cscc/c/c_declspec.h, cscc/c/c_defs.tc, cscc/c/c_grammar.y,
	cscc/c/c_lexutils.c, cscc/c/c_oper.tc, cscc/c/c_scanner.l:
	add the "__box" keyword for Managed C++ compatibility;
	remove the "__long_long__" keyword and replace it with "__int64".

	* image/sig_parse.c: allow custom modifiers within a byref type.

	* cscc/c/c_declspec.c, cscc/c/c_declspec.h, cscc/c/c_grammar.y,
	cscc/c/c_invoke.tc, cscc/c/c_lvalue.tc, cscc/c/c_stubs.tc,
	cscc/c/c_types.c, cscc/c/c_types.h: add by-reference parameters
	to the C compiler, for interacting with C# methods that have
	"ref" and "out" parameters.

	* cscc/c/c_declspec.c, cscc/c/c_grammar.y, cscc/c/c_scanner.l:
	replace "__thread_specific__" with "__declspec(thread)".

	* doc/pnettools.texi: begin moving the C compiler documentation
	into "pnettools.texi".

2004-02-29  Rhys Weatherley  <rweather@southern-storm.com.au>

	* codegen/cg_scope.c, codegen/cg_scope.h, cscc/c/c_grammar.y,
	cscc/c/c_scanner.l, cscc/c/c_scope.c, cscc/c/c_scope.h:
	add the "__using__" and "__namespace__" keywords to the C
	compiler so that they can be used to resolve C# types using
	the "Namespace::Type" syntax.

	* cscc/c/c_grammar.y, cscc/c/c_scanner.l: remove the "__csharp__"
	keyword from the C compiler as it is no longer necessary.

	* cscc/c/c_defs.tc, cscc/c/c_grammar.y, cscc/c/c_invoke.tc,
	cscc/c/c_lvalue.tc, cscc/c/c_oper.tc: rearrange the grammar for
	"Type::Identifier" so that it can handle more than just static
	methods; implement a better C# member resolution algorithm.

	* configure.in, cscc/Makefile.am, cscc/cpp/*: check in a copy
	of gcc's C pre-processor so that we can use it instead of the
	system cpp, which is sometimes busted too much for us to use.

	* cscc/common/cc_main.c: hook "cscc-cpp" into the "cscc" front end.

2004-02-28  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_oper.tc (MulPtrSize): fix a bug where 1 * sizeof(type)
	was being converted into 1 instead of sizeof(type) if "type"
	was dynamic in size.

	* cscc/c/c_builtin.tc, cscc/c/c_defs.tc, cscc/c/c_internal.c,
	cscc/c/c_invoke.tc, cscc/c/c_library.c: remove the remaining
	references to the obsolete "OpenSystem.C.LongDouble" type.

	* cscc/c/c_declspec.c: the type "__native__ int" was not being
	properly recognised.

	* cscc/c/c_grammar.y, cscc/c/c_scanner.l, cscc/c/c_stmt.tc,
	cscc/c/c_stubs.tc: add exception statements to the C compiler,
	so that exceptions that are thrown by C# code can be caught.

	* cscc/c/c_defs.tc, cscc/c/c_grammar.y, cscc/c/c_oper.tc,
	cscc/c/c_scanner.l, cscc/c/c_stmt.tc, cscc/c/c_stubs.tc,
	cscc/c/c_types.c, cscc/c/c_types.h, cscc/common/cc_main.c,
	cscc/common/cc_main.h, doc/c_users_guide.html: add counterparts
	to the C# lock, null, true, false, checked, and unchecked
	keywords; permit an assembly name to be used with "__csharp__"
	for importing from assemblies other than "mscorlib".

	* cscc/c/c_const.tc, cscc/c/c_grammar.y, cscc/c/c_lexutils.c,
	cscc/c/c_scanner.l: allow S"foo" to be used for C#-style strings,
	similarly to Managed C++.

2004-02-27  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_typeout.c, cscc/c/c_types.c, doc/c_language_abi.html:
	use prefixes such as "struct_" instead of "struct ", so that
	the resultant C types are visible to C# programs.

2004-02-25  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_declspec.c, cscc/c/c_oper.tc, doc/c_language_abi.html,
	doc/c_users_guide.html, ilalink/link_create.c, ilalink/link_field.c,
	ilalink/link_init.c, ilalink/link_library.c, ilalink/link_method.c,
	ilalink/link_module.c, ilalink/linker.h: convert "long double"
	into "double" because "native float" doesn't work properly with
	Microsoft's CLR; use ordinary names like "libc" instead of
	"$Module$" so that non-pnet C# compilers can import C libraries.

2004-02-17  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_grammar.y (ParameterDeclaration): support parameters
	declarations of the form "register <type>".

	* cscc/c/c_stmt.tc (ILNode_NewScope): return the inner statement's
	semantic value to the caller so that expression statements are
	handled correctly.

	* engine/int_table.c, engine/lib_thread.c: modify the
	"InternalWaitAll" and "InternalWaitAny" internalcalls to take
	"IntPtr[]" parameters rather than "WaitHandle[]" parameters.

	* cscc/c/c_coerce.c, cscc/c/c_oper.tc, doc/c_users_guide.html:
	allow zero to be used in C in contexts where a C#-style object
	reference is expected; add C#-style casts and coercions to C.

	* doc/c_users_guide.html: clean up the C user's guide a little.

	* doc/c_users_guide.html, ilalink/link_library.c:
	recognise C# types that are tagged with "OpenSystem.C.GlobalScope"
	as containing functions that are directly accessible from C.

2004-02-16  Rhys Weatherley  <rweather@southern-storm.com.au>

	* codegen/cg_decls.tc, codegen/cg_gen.c, codegen/cg_gen.h,
	cscc/c/c_defs.tc, cscc/c/c_function.c, cscc/c/c_grammar.y,
	cscc/c/c_stmt.tc: implement support for computed goto's in
	the C compiler.

2004-02-15  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/verify_obj.c: relax the M/T/I pointer restrictions in
	"ldfld", "ldflda", and "stfld" instructions so that fields can
	be properly handled in unmanaged C code even when the wrong
	kind of pointer is supplied.

	* ilalink/link_create.c, ilalink/link_field.c, ilalink/link_library.c,
	ilalink/link_method.c, ilalink/linker.h: improve the detection of
	unresolved externals; fix problems with linking backward references
	within C assemblies.

	* dumpasm/dump_type.c, ilalink/link_create.c, include/il_dumpasm.h:
	dump unresolved externals using C type names rather than IL type
	names, so that the error messages make more sense to ordinary users.

	* ilalink/link_create.c, ilalink/link_library.c, ilalink/linker.h:
	handle unresolved references to functions that involve varargs.

	* dumpasm/dump_type.c, ilalink/link_create.c: more adjustments to
	C type name dumping.

	* engine/verify_ptr.c: fix bug #4934 related to storing managed
	pointers via "stind.i".

2004-02-14  Rhys Weatherley  <rweather@southern-storm.com.au>

	* configure.in, support/time.c: use the "tm_gmtoff" field within
	"struct tm" for the timezone offset, if present (thanks to
	Ole Guldberg Jensen <olegb@opendarwin.org>).

2004-02-13  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_coerce.c (GetCoerceRules): don't strip prefixes
	off "fromType" if it is a function pointer type; this allows
	casts of the form "function pointer to void *".

2004-02-12  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_declspec.c, cscc/c/c_declspec.h, cscc/c/c_grammar.y,
	cscc/c/c_scanner.l: add the "__thread_specific__" storage class
	to the C compiler so that global variables like "errno" in pnetC
	can be made thread-specific.

2004-01-24  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_emit.c: use "wb" mode to save emitted images;
	set +x on emitted exe's.

2004-01-23  Rhys Weatherley  <rweather@southern-storm.com.au>

	* codegen/cg_coerce.c (GetReferenceConvertRules): make sure
	that the "from" and "to" classes are fully resolved before
	testing their relationship.

2004-01-13  Adam Ballai <adam@thefrontnetworks.net>

	* configure.in, support/thr_choose.h, pt_defs.h: Enable
	  FreeBSD pthreads support in pnet.
	
2004-01-03  Rhys Weatherley  <rweather@southern-storm.com.au>

	* NEWS, configure.in: update version for the "0.6.2" release.

	* configure.in: update working version to "0.6.3".

2003-12-30  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_reflect.c (_IL_ClrMethod_Invoke): ignore the target
	object when invoking a static method (fix suggested by Gopal V).

	* resgen/resgen_binary.c: fix some alignment issues in the
	reading and writing of binary resources.

2003-12-29  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_socket.c (IPToHostEntry): fix endian-ness issues
	with the conversion from hostent form.

	* codegen/cg_coerce.c: can explicitly cast between pointer
	types and IntPtr.

	* csant/csant_fileset.c: check the "if" attribute on <file> tags.

	* support/unicase.c, support/unicat.c, support/uninum.c:
	update the Unicode character property tables to match Unicode 4.0.1.

2003-12-23  Rhys Weatherley  <rweather@southern-storm.com.au>

	* resgen/resgen.c: add the "--extract" option to help with
	extracting resource files from an assembly.

2003-12-22  Rhys Weatherley  <rweather@southern-storm.com.au>

	* support/locale.c: check for "LC_ALL" before "LANG".

	* resgen/resgen_po.c, resgen/resgen_text.c: add the ".po" charset
	header and fix some Latin1 to UTF-8 conversion bugs.

	* resgen/resgen_po.c: improve escape sequence handling for ".po" files.

	* resgen/resgen_po.c: process "fuzzy" markers in ".po" files.

	* cscc/csharp/cs_grammar.y: rearrange the grammar to handle
	casts of the form "(X *)y" where X is an expression type.

	* codegen/cg_lvalue.tc (ILNode_DerefField): clear "tempVar"
	if performing a regular assignment, to prevent "Store" from
	pushing a "leave" value onto the stack when it shouldn't do so.

2003-12-21  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_marshal.c: implement "StructureToPtrInternal".

2003-12-21  Tony Garnock-Jones  <tonyg@kcbbs.gen.nz>

	* engine/lib_type.c: handle '*' and '&' in "Type.GetType".

2003-12-16  Rhys Weatherley  <rweather@southern-storm.com.au>

	* ildasm/ildasm_main.c, image/winres_reader.c: dump the
	"VS_VERSION_INFO" Win32 resource block in "ildasm".

	* image/image.h, image/winres_reader.c, image/winres_writer.c:
	add support code for writing Win32 resources to the ".rsrc" section.

2003-12-16  Gopal.V  <gopalv82@symonds.net>

	* cscc/csharp/cs_grammar.y: make line numbers work on versions
	of yacc that define YYLTYPE_IS_DECLARED but not YYLTYPE.

2003-12-03  Rhys Weatherley  <rweather@southern-storm.com.au>

	* configure.in, support/regex.c: add <inttypes.h> to configure.in
	so that regex routines get the correct definition of "uintptr_t"
	(thanks to Miroslaw Dobrzanski-Neumann for identifying the issue).

	* cscc/csharp/cs_misc.tc (ILNode_SizeOf): bug in the handling of
	"sizeof" which caused it to always set the size of non-primitive
	types to 1.

2003-12-02  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_file.c:
	add internalcalls to "FileMethods" to support symbolic links.

2003-12-01  Gopal.V  <gopalv82@symonds.net>

	* samples/evenodd.il, samples/hello.il: qualify references to
	"System.String" in the IL examples.

2003-12-01  Rhys Weatherley  <rweather@southern-storm.com.au>

	* include/il_values.h: fix an ANSI C oddity in "IL_READ_INT64"
	and "IL_READ_UINT64" (thanks to Miroslaw Dobrzanski-Neumann).

	* engine/lib_delegate.c (PackDelegateInvokeParams): fix a bug
	with the expansion of float and double parameters (bug #6891).

2003-11-30  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/cvmc_setup.c: truncate or sign-extend 8-bit and 16-bit values
	from PInvoke/internalcall methods just in case "libffi" sets the
	high bits to garbage.

2003-11-28  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_crypt.c, include/il_crypt.h, support/Makefile.am,
	support/ripemd160.c: add the RIPEMD-160 hash algorithm to the engine.

	* cscc/csharp/cs_misc.tc, cscc/csharp/cs_oper.tc: increment and
	decrement operators for pointer values.

2003-11-27  Rhys Weatherley  <rweather@southern-storm.com.au>

	* ilgac/ilgac.c: modify "ilgac" so that it can also install
	IL executables into the assembly cache.

	* support/file.c (ILCopyFile): rewrite the file copying function.

	* missing: update the "missing" script so that it is no longer
	"too old or missing".

	* ildd/ildd.c: use "n.n.n.n" instead of "n:n:n:n" for version
	numbers, to be consistent with recommended usage for other tools.

	* cscc/csharp/cs_lookup.c: allow fields to be resolved when
	performing semantic analysis on an attribute argument so that
	constants in the current class can be properly expanded (bug #5436).

2003-11-26  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/csharp/cs_misc.tc (ILNode_NewExpression): report an error
	if "float[]" or "double[]" is used in a profile that does not
	have the floating-point classes in the runtime library.

	* ildd/ildd.c: print the assembly version for each file
	that is scanned.

	* doc/pnettools.texi, ildd/ildd.1, ildd/ildd.c: add the "-r"
	option to "ildd", to recursively print dependencies.

	* csant/csant_cscc.c (CSAntTask_ResLink): spelling mistake - should
	be "installasdefault", not "install".

	* csant/csant_cscc.c: minor bugs in the handling of the <resgen>
	and <reslink> tags.

	* csant/csant_cscc.c: disable the "--silent" flag to "ilgac"
	so that it will display what it is doing during a "make install".

	* clrwrap/clrwrap.c: modify "clrwrap" so that it can implicitly
	get the name of the IL program to run from argv[0].

2003-11-25  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/meta_build.c (ResolveTypeRefs): if a TypeRef to a foreign
	assembly/module remains unresolvable and there are redo items,
	then queue the TypeRef for redo also.

	* ilasm/ilasm_grammar.y, image/meta_build.c, image/misc_token.c,
	include/il_program.h: set an exported type's scope when it is
	created so that the correct ILClassName is constructed.

	* image/context.c, image/meta_build.c: treat "file" scopes the
	same as "module" scopes during class lookup; better error reporting
	for unresolved exported types.

	* image/context.c, image/meta_build.c, image/misc_token.c,
	include/il_program.h: resolve export type references to files.

2003-11-24  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/meta_build.c: "redo" processing for nested and exported
	types, resolve TypeRef's that involve ModuleRef scopes.

	* image/image.h, image/link.c, image/meta_build.c: dynamic
	loading for images referred to via ModuleRef tokens.

	* image/meta_build.c: link a dynamically loaded module to
	the ModuleRef.

	* image/meta_types.c (ILTypeIdentical): check for class identity
	in a way that will work even if "redo" items are involved and the
	classes haven't been linked together yet.

	* image/meta_build.c (Load_ExportedType): don't add exported types
	to the "redo" list if the "no resolve" load flag is set.

	* doc/pnettools.texi, ildd/ildd.1, ildd/ildd.c: dump file and
	resource declarations from "ildd"; add the "-f" option to "ildd"
	to force filenames to be displayed even if there is only one name.

2003-11-23  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/context.c, image/image.h, image/link.c, image/meta_build.c,
	image/pecoff_loader.c: add a "redo" list to the program loading
	process, to allow recursive TypeRef's and MemberRef's to be
	resolved in a final pass after all recursive images have been loaded.

2003-11-21  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/csharp/cs_oper.tc: implement a short-cut in the "==" and "!="
	operators for "IntPtr" arguments, to avoid a runtime call to the
	user-defined operator methods.

	* engine/cvmc_branch.c: add missing cases for type-I arguments
	to branch and compare opcodes.

	* cscc/csharp/cs_lvalue.c, codegen/cg_const.tc: expand "IntPtr.Zero"
	inline to "ldc.i4.0, conv.i", for greater runtime efficiency.

2003-11-20  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/marshal.c (ILPInvokeGetMarshalType): fix a typo
	(thanks to Miroslaw Dobrzanski-Neumann).

	* configure.in, support/ansi.c: change MB_CUR_MAX to MB_LEN_MAX
	because the former may not be constant on some platforms
	(thanks to Miroslaw Dobrzanski-Neumann).

	* engine/int_proto.h, engine/int_table.c, engine/lib_info.c:
	add the "InfoMethods.GetProcessorCount" internalcall.

2003-11-19  Rhys Weatherley  <rweather@southern-storm.com.au>

	* support/console.c, support/serial.c: work around missing termios
	definitions under Darwin.

2003-11-17  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/meta_index.c, image/pecoff_loader.c: add some support
	for IL object files that use a ".cormeta" section.

2003-11-15  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_reflect.c, ilalink/link_res.c, resgen/resgen_binary.c:
	resource sections should be padded to a multiple of 4 bytes.

2003-11-14  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_reflect.c:
	support static fields in "ClrField.GetValue" and "ClrField.SetValue".

	* support/serial.c: work around missing termio symbols under
	FreeBSD and OpenBSD.

	* resgen/resgen.c: perform the check for "/compile" and "-compile"
	in a different manner, to deal with "@name" option file references.

	* engine/lib_reflect.c: fix a segv in the previous checkin.

2003-11-13  Miroslaw Dobrzanski-Neumann  <mne@mosaic-ag.com>

	* configure.in: detect cc options such as "-fno-gcse" with a
	full compile and link because a compile on its own confuses
	IBM's AIX C compiler, xlc.

	* libgc/dyn_load.c: fixes for IBM's AIX compiler.

2003-11-12  Gopal.V  <gopalv82@symonds.net>

	* cscc/csharp/cs_stmt.tc: fix switch statement fall-through
	detection for nested switch statements (bug #6417) (applied by Rhys).
	
2003-11-12  Rhys Weatherley  <rweather@southern-storm.com.au>

	* support/console.c: add Win32 console support.

	* support/console.c: reset the co-ordinates to (0, 0) after a clear.

	* configure.in: don't attempt to detect termcap or curses under Win32.

	* support/sha384.c, support/sha512.c, support/thread.c,
	support/time.c, support/wait.c, support/wait_event.c:
	fix some warnings that were turned up by gcc 3.3.

	* configure.in: use the static version of libz under mingw32
	to avoid a dependency upon "mgwz.dll".

	* support/file.c: port the file locking primitives to Win32.

	* support/file.c: adjust a #ifdef so that the locking primitives
	compile properly with cygwin.

2003-11-11  Rhys Weatherley  <rweather@southern-storm.com.au>

	* Makefile.am, configure.in, ilgac/.cvsignore, ilgac/Makefile.am,
	ilgac/ilgac.c, support/dir.c, support/file.c, support/gen_errno.sh:
	add the "ilgac" program; fix some error-handling bugs in the
	file and directory support routines.

	* csant/csant.c, csant/csant_build.c, csant/csant_cscc.c,
	csant/csant_defs.h, csant/csant_task.c: add the <resgen> and
	<reslink> tags to csant; add --install and --uninstall options
	to csant.

	* ilgac/ilgac.1, ilgac/Makefile.am: add the manpage for "ilgac".

	* csant/csant.c: add the "--assembly-cache" option to csant.

	* csant/csant_cscc.c: perform the "newer" check for <resgen>
	and <reslink>.

2003-11-10  Stephen Compall  <s11@member.fsf.org>

	* support/file.c (ILSysIOLock, ILSysIOUnlock): Exclusive file
	locking support, only when fcntl and F_SETLKW are present.

	* configure.in: Check for F_SETLKW in fcntl.h.

2003-11-10  Rhys Weatherley  <rweather@southern-storm.com.au>

	* csant/csant_cscc.c, csant/csant_defs.h, csant/csant_parse.c:
	preserve the full profile values, not just true/false, so that
	non-boolean values can be defined.

	* ilsize/ilsize.c: dump the assembly version in the detailed
	output mode of "ilsize".

	* configure.in, support/console.c: implement terminfo-based
	console routines for systems that lack termcap, or a termcap
	that interfaces to terminfo.

	* image/link.c: rearrange the assembly resolution order so that
	CSCC_LIB_PATH always comes before libraries in the same directory
	as the parent, to avoid conflicts with third-party CLI's, and
	without needing hacks like "pnetlib.here".

	* image/link.c: look in a version-specific sub-directory
	before looking in the main directory during assembly resolution.

2003-11-09  Rhys Weatherley  <rweather@southern-storm.com.au>

	* configure.in, support/console.c: use a better detection mechanism
	for systems that use <term.h> instead of <termcap.h>.

2003-11-08  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/csharp/cs_grammar.y (GetIndexerName): fix potential
	segv conditions.

	* support/console.c: if a special key corresponds to a single
	ASCII character, then return that character as well as the key code.

	* support/console.c: recognise metacharacter sequences like ESC-A
	and convert them into ALT-A.

	* engine/int_proto.h, engine/int_table.c, engine/lib_serial.c,
	include/Makefile.am, include/il_serial.h, support/Makefile.am,
	support/serial.c: add the support routines for serial port I/O
	and hook up the necessary internalcalls.

	* doc/pnetimg.texi: remove pnetimg.texi because it is woefully
	incomplete and out of date compared to the comments in il_program.h.

	* include/il_serial.h, support/serial.c: add the "RING" signal to
	the list of monitored serial line pins.

2003-11-07  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/cs_main.c: enable the "-fgenerics" option by default because
	the keyword ambiguities have been dealt with.

	* codegen/cg_misc.tc, codegen/cg_nodes.tc, codegen/jv_misc.tc,
	cscc/csharp/cs_grammar.y, cscc/csharp/cs_invoke.tc: add the
	"Type.default" idiom to the C# compiler, for C# 2.0 compatibility.

	* codegen/cg_defs.h, codegen/cg_misc.tc, codegen/cg_nodes.tc,
	cscc/csharp/cs_grammar.y, cscc/csharp/cs_invoke.tc, include/il_types.h:
	add some semantic analysis for "new X<T>(...)" expression forms.

	* image/link.c (ILPInvokeResolveModule): allow relative paths
	of the form "X/Y/Z" to be used for PInvoke module names (bug #5413).

	* engine/verify_call.c (MatchSignature): recognize method pointers
	as valid type-I values in signature verification (Gopal V).

	* support/console.c (ILConsoleWriteChar): the backspace character
	'\u0008' should not erase by default when output.

2003-11-06  Rhys Weatherley  <rweather@southern-storm.com.au>

	* support/console.c: add extra keycodes to the function/arrow key
	mapping table, to deal with codes that aren't typically present
	in the termcap entry for a terminal.

2003-11-05  Rhys Weatherley  <rweather@southern-storm.com.au>

	* include/Makefile.am: add "il_console.h" to "include/Makefile.am".

2003-11-04  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/Makefile.am, engine/int_proto.h, engine/int_table.c,
	engine/lib_serial.c: stub out internalcalls for "PortMethods".

2003-11-03  Rhys Weatherley  <rweather@southern-storm.com.au>

	* configure.in, engine/Makefile.am, engine/lib_stdio.c,
	engine/process.c, include/il_console.h, include/il_utils.h,
	support/Makefile.am, support/console.c, support/input.c:
	check in the new console implementation.

2003-11-02  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_stdio.c:
	stub out new interncalls for the "Platform.Stdio" class.

2003-11-01  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_task.c: use a slightly longer timeout gap within
	"Process.WaitForExit" to prevent the kernel from being overloaded
	by lots of small timeouts.

2003-10-31  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_task.c: pass environment variables from the "Process"
	class to the child process (Unix systems).

2003-10-30  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_stdio.c (StdRead): increment number of bytes
	read for current return value (Stephen Compall).

	* resgen/resgen.c: skip the "/compile" and "-compile" options
	to resgen, for backwards-compatibility with other vendors' tools.

2003-10-29  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/unroll.c: fix the VMA when dumping unrolled code
	with "objdump" (thanks to Miroslaw Dobrzanski-Neumann
	<mne@mosaic-ag.com>).

	* doc/pnettools.texi, resgen/resgen.1, resgen/resgen.c,
	resgen/resgen.h, resgen/resgen_po.c, resgen/resgen_text.c:
	add the "-l" option to "resgen", which converts Latin-1 into UTF-8.

2003-10-26  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/csharp/cs_grammar.y, cscc/csharp/cs_internal.h,
	cscc/csharp/cs_scanner.l: handle special C# keywords like
	"get", "set", "add", "remove", and "where" in a slightly
	different way, to reduce the need for hacky flags and
	scanner states.

	* cscc/csharp/cs_grammar.y, cscc/csharp/cs_scanner.l:
	add new keywords and syntax for the C# 2.0 features anonymous
	methods, partial types, and iterators (semantics is not done yet).

2003-10-15  Rhys Weatherley  <rweather@southern-storm.com.au>

	* NEWS, configure.in: update version for the "0.6.0" release.

	* configure.in: update working version to "0.6.1".

2003-10-14  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/image.h, image/meta_build.c, image/misc_token.c:
	search for owned items in a way that avoids loading an
	item unless it is actually the one that was sought.

	* codegen/cg_gen.h, codegen/cg_stmt.tc, codegen/jv_stmt.tc:
	fixed a bug in "foreach" which caused it to use the wrong
	kind of jump when a "break" appeared in the loop body.

2003-10-13  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/Makefile.am, engine/ilrun.1, engine/ilverify.1:
	add a man page for "ilverify"; minor edits to the "ilrun" man page.

	* tests/Makefile.am, tests/test_thread.c, tests/test_varith.c,
	tests/test_vbranch.c, tests/test_vcompare.c, tests/test_vconst.c,
	tests/test_vconv.c, tests/test_verify.c, tests/test_verify.h,
	tests/test_vlocal.c, tests/test_vmisc.c: remove the "test_verify"
	program because it isn't used any more, and won't work since
	mscorlib.dll was moved out of pnet anyway.

	* Makefile.am, configure.in, ildiff/AUTHORS, ildiff/Makefile.am,
	ildiff/README, ildiff/TODO, ildiff/ildiff.1, ildiff/ildiff.c,
	ildiff/pretty.h: remove "ildiff" which is obsolete and slated to
	be rewritten in C#.

	* Makefile.am, configure.in, ildb/Makefile.am, ildb/README,
	ildb/ildb.1, ildb/ildb_cmd.c, ildb/ildb_cmd.h, ildb/ildb_context.c,
	ildb/ildb_context.h, ildb/ildb_display.c, ildb/ildb_errors.c,
	ildb/ildb_input.c, ildb/ildb_input.h, ildb/ildb_list.c,
	ildb/ildb_main.c, ildb/ildb_parse.c, ildb/ildb_run.c,
	ildb/ildb_search.c, ildb/ildb_search.h, ildb/ildb_set.c,
	ildb/ildb_show.c, ildb/ildb_source.c, ildb/ildb_source.h,
	ildb/ildb_system.c, ildb/ildb_utils.c, ildb/ildb_utils.h,
	ildb/xxildb: remove "ildb" which is obsolete and slated to be
	rewritten in C#.

	* doc/pnet_faq.html: update the linking exception to match
	GNU Classpath.

2003-10-12  Rhys Weatherley  <rweather@southern-storm.com.au>

	* doc/pnet_faq.html: more updates to the FAQ.

2003-10-10  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/process.c: set the "system" image when the standard
	classes are loaded so that types like "System.Array" get resolved
	properly by "ILClassResolveSystem".

	* engine/ilrun.c: use an alternative existence check for the
	IL binary to handle ".exe" extensions under Windows.

	* csant/csant_cscc.c (BuildMcsCommandLine): pass missing options
	like "-optimize" to "mcs" (Bug #5830).

	* doc/pnet_faq.html: update the FAQ.

2003-10-08  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_object.c:
	add the "Activator.CreateValueTypeInstance" internalcall.

	* libffi/src/x86/ffi.c: use an alternative mechanism for getting
	the argument address in closures, because the previous one didn't
	work on all platforms.

	* engine/cvm_conv.c, engine/engine.h, engine/lib_delegate.c,
	engine/lib_marshal.c, engine/pinvoke.c: add delegate objects
	to the GC handle table when they are converted into closures
	so that the object won't disappear out from underneath the
	closure.

2003-10-07  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/cvm.h, engine/cvm_conv.c, engine/cvm_dasm.c,
	engine/cvm_lengths.c, engine/cvmc_setup.c, engine/gen_marshal.tc,
	engine/lib_marshal.c, engine/pinvoke.c, image/marshal.c,
	include/il_program.h: marshal structures that contain delegate fields.

2003-10-03  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_type.c (InternalGetSerializableMembers): misplaced "++".

	* cscc/c/c_coerce.c (ApplyCoercion): handle constant coercions
	when the underlying machine type does not change.

	* cscc/c/c_coerce.c (GetCoerceRules): allow function pointer types
	to be coerced if they have the same basic "shape", even if some
	of the parameters differ in const or pointer types.

	* cscc/c/c_oper.tc (CreateBoolValue): the boolean type in C is "int".

2003-10-02  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_oper.tc: improve the handling of boolean constant
	values in the C compiler.

2003-09-30  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_delegate.c:
	stub out the "SetOutParams" internalcall.

	* engine/cvm_except.c, engine/cvmc_gen.h, ilasm/ilasm_output.c,
	ildasm/ildasm_class.c, ildasm/ildasm_java.c, image/writer.c,
	support/test_float.c: fix the "compact" profile.

2003-09-29  Rhys Weatherley  <rweather@southern-storm.com.au>

	* ilasm/ilasm_output.c (OutputDebugInfo): make sure that the
	proper filename is written to debug overflow blocks.

	* ilalink/link_create.c, ilalink/link_image.c, ilalink/linker.h,
	image/debug_writer.c, image/image.h, include/il_writer.h:
	add the link directory to the debug symbol table so that
	the full pathname of a source file can be recovered later.

	* doc/pnettools.texi: document how the link directory is stored
	in the debug symbol table.

2003-09-26  Rhys Weatherley  <rweather@southern-storm.com.au>

	* csant/csant.1, doc/pnettools.texi: update the documentation
	for csant to include information about the XML build file syntax.

2003-09-25  Adam Ballai  <Adam@thefrontnetworks.net>
	
	* engine/ilrun.c: add necessary code for compact profile
	to build correctly.

2003-09-25  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/meta_build.c: load the TypeRef/TypeDef names before doing
	dynamic linking, to make it easier to resolve cross-assembly
	type references in recursive situations.

	* image/image.h, image/meta_build.c, image/pecoff_loader.c:
	put some infrastructure in place to support on-demand loading
	of TypeRef tokens.

	* image/meta_build.c: remove some unnecessary code; convert
	MethodSpec tokens to on-demand loading.

2003-09-22  Rhys Weatherley  <rweather@southern-storm.com.au>

	* support/dns.c, support/socket.c: make sure that the socket
	functions are properly detected under mingw32 (bug #3511).

	* support/dns.c, support/socket.c: ensure that "WSAStartup" is
	called before any socket functions because Win32 refuses to
	perform socket operations without it.

2003-09-20  Rhys Weatherley  <rweather@southern-storm.com.au>

	* csant/csant_cscc.c: add the "--unsafe" option to the command-line
	for "mcs" where necessary.

2003-09-19  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_info.c,
	include/il_system.h, support/Makefile.am, support/path.c:
	add the "InfoMethods.GetPlatformName" internalcall to the engine.

	* ilasm/ilasm_output.c: parameter information was being added to
	the debug symbol table when it should not have been.

2003-09-13  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/common/cc_compat.c: be careful not to treat absolute
	pathnames as options in compat mode.

2003-09-12  Rhys Weatherley  <rweather@southern-storm.com.au>

	* csdoc/doc_valil.c: don't report extra classes that are
	marked with the "NonStandardExtra" attribute.

2003-09-06  Rhys Weatherley  <rweather@southern-storm.com.au>

	* csdoc/cssrc2html.1: fill in the missing parts of the manpage.

	* NEWS, configure.in: update version for the "0.5.12" release.

	* configure.in: update working version to "0.5.13".

2003-09-06  Andrew Mitchell  <ajmitch@gnu.org>

	* csdoc/Makefile.am, csdoc/cssrc2html.1: added manpage for cssrc2html
	
2003-09-05  Rhys Weatherley  <rweather@southern-storm.com.au>

	* csdoc/il2doc.c: remove assembly version qualifications when
	dumping type names in attributes for correct matching against
	pnetlib which uses version-agnostic type names.

	* codegen/cg_decls.tc, ilasm/ilasm_build.c, ilasm/ilasm_build.h,
	ilasm/ilasm_grammar.y, image/lib_attrs.c: convert instances of
	"SecurityPermissionAttribute" into security declarations;
	update the compiler and assembler to process security declarations.

2003-09-04  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/csharp/cs_gather.c: report duplicates for "override"
	methods correctly (bug #4861).

	* csdoc/il2doc.c: abstract types that inherit from "ValueType"
	are classes, not structs.

2003-09-03  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/vb/vb_scanner.l: '$' is not valid in VB identifiers except
	as the terminating type character.

	* csdoc/doc_valil.c: handle long-form nested type names better.

2003-09-02  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_type.c: don't include static fields in the list
	of serializable members for a type.

2003-09-01  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/internal.c,
	engine/lib_type.c: new internalcall for "FormatterServices".

2003-08-31  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_info.c:
	new internalcalls in "InfoMethods" for getting the user
	storage and global configuration directories..

2003-08-30  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/engine.h: temporarily disable IMT's because they are
	causing some problems in the pnetlib winforms code.

2003-08-29  Rhys Weatherley  <rweather@southern-storm.com.au>

	* include/il_utils.h, support/.cvsignore, support/Makefile.am,
	support/mkcase.c, support/unicase.c, support/unicode.c:
	add support routines for performing Unicode case conversion.

	* engine/int_proto.h, engine/int_table.c, engine/lib_string.c:
	implement the "String.CompareInternal" internalcall in terms
	of the Unicode comparison support routines.

	* engine/int_proto.h, engine/int_table.c, engine/lib_string.c,
	include/il_utils.h, support/mkcase.c, support/unicase.c,
	support/unicode.c: internalcalls for TextInfo; remove the
	title case conversion table and functions because they are
	not required.

2003-08-28  Rhys Weatherley  <rweather@southern-storm.com.au>

	* configure.in, image/link.c, image/pecoff_loader.c,
	profiles/compact, profiles/compact-fp, profiles/full,
	profiles/kernel, profiles/kernel-fp, profiles/tiny:
	add support for gzip-compressed PE/COFF binaries.

	* image/pecoff_loader.c: disable in-place execution when
	the binary image has been compressed.

2003-08-23  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_reflect.c:
	new internalcalls for "Assembly"; implement "Module" internalcalls.

	* engine/int_proto.h, engine/int_table.c, engine/lib_thread.c:
	add the "Thread.SpinWait" interncall.

	* engine/verify_obj.c: change a "continue" into a "break" in
	the verifier that stopped the instruction pointer from being
	incremented.

2003-08-20  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_reflect.c:
	new internalcalls to support "Assembly" and "AssemblyName".

2003-08-19  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_file.c,
	include/il_sysio.h, support/file.c: stub out the internalcalls
	for "FileMethods.Lock" and "FileMethods.Unlock".

	* engine/engine.h, engine/int_proto.h, engine/int_table.c,
	engine/lib_security.c, engine/thread.c: remove the obsolete
	platform security manager classes, which will be superceded by CAS.

2003-08-18  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/pecoff_loader.c (MemoryRead): reversed test, causing segv
	(found by Chris Smith - bug #4807).

	* codegen/cg_nodes.tc, codegen/cg_stmt.tc: implement "GetType"
	and "GenValue" for scopes and compound statements, to support
	statement expressions in C (bug #4809).

	* codegen/cg_stmt.tc: fix the code generation for C switch
	statements to stop values being left on the stack during
	fall-through situations (bug #4822).

2003-08-15  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c_main.c, cscc/c/c_grammar.y, cscc/c/c_scanner.l:
	add some extra keywords to the C compiler, so that spaces
	and quotes can be avoided in the cpp options for MacOS X.

2003-08-14  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_reflect.c: "Assembly.GetLocation" should return
	the full pathname for the assembly, not just the directory.

2003-08-13  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c: regenerate the
	internalcall table to include "CodeTable.GetAddress".

	* cscc/c/c_types.c (CTypeDefineAnonEnum): incorrect length
	used in ILMalloc call, leading to segv in anoymous enum's
	inside functions (bug #4732).

	* cscc/c/c_grammar.y: rearrange the expression grammar so
	that "=" has higher precedence than "?:" (bug #4726).

2003-08-12  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_defs.tc, cscc/c/c_oper.tc: constant evaluation
	for conditional expressions.

	* cscc/c/c_types.c (CTypeDefineField): allow "long double"
	to be used inside non-native struct's and union's, even though
	it is a native type.

	* engine/lib_reflect.c (_IL_Assembly_LoadFromName): remove
	".dll" from the end of an assembly name.

2003-08-11  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_types.c (MD5HashType): bug in the value used for
	hashing primitive element types (bug #4528).

	* cscc/common/cc_main.c (LoadLibraryFromPath): ignore missing
	libraries when compiling C source, as C libraries are normally
	fixed up at link time, not compile time.

	* ilalink/link_library.c, ilalink/linker.h: report multiply
	defined global symbols only once (bug #4703).

	* cscc/c/c_grammar.y (Declaration): display an extra error line
	if a "two or more types" error might be a redeclaration of a
	typedef'ed name (bug #4701).

	* cscc/c/c_declspec.c (CDeclSpecCombine): handle typedef's
	that contain "short int" (bug #4702).

2003-08-10  CH Gowri Kumar  <gkumar@csa.iisc.ernet.in>

	* engine/Makefile.am, engine/cvm.c, engine/cvm_config.h,
	engine/cvmc_setup.c, engine/md_ia64.c, engine/md_ia64.h,
	engine/md_ia64_macros.h, engine/unroll.c, engine/unroll_arith.c,
	include/il_system.h, support/clflush.c: initial version of the
	ia64 unroller.

2003-08-10  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/csharp/cs_grammar.y: modify struct declarators so that
	they can include typedef names as field names (bug #4689).

	* doc/unrolling.txt, engine/md_arm.h, engine/md_ia64.h,
	engine/md_ppc.h, engine/md_x86.h, engine/unroll_branch.c:
	add a "cond" parameter to the "md_cmp" macros to indicate
	the kind of condition that is being checked for; needed for
	PPC and ia64 where the condition codes are set in different
	ways for different tests.

2003-08-09  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/csharp/cs_gather.c: fix a bug where "final virtual" was
	being added to methods that weren't interface implementations.

2003-08-08  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_reflect.c: fix a compile warning in previous checkin.

	* engine/int_proto.h, engine/int_table.c, engine/lib_type.c:
	update internalcalls for type generics to match Gyro 1.0.

	* engine/int_proto.h, engine/int_table.c, engine/lib_reflect.c:
	stub out internalcalls for method generics.

2003-08-07  Richard Baumann  <biochem333@nyc.rr.com>

	* engine/int_proto.h, engine/int_table.c: update for new internal calls
	in pnetlib.

	* engine/lib_reflect.c: add and implement Assembly.Location and
	AppDomain.GetAssemblies internal calls.

2003-08-06  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_reflect.c: implement the internalcall for
	MethodInfo.GetBaseDefinition (bug #4577).

	* support/decimal.c (MulByWord): correctly propagate carries
	from one word to the next in decimal multiplications (Bug #3529).

2003-08-05  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/md_ppc.h, engine/ppc_codegen.h: check in the early
	stages of the PPC unroller macros.

	* support/ansi.c: don't use the mb/wc routines if wchar.h is
	not present (needed for some Mac OS X systems that have the
	functions but not the header file definitions for mbstate_t).

2003-08-01  Gopal.V  <gopalv82@symonds.net>
	
	* ildasm/ildasm_internal.h, ildasm/ildasm_main.c, ildasm/ildasm.1: 
	Add new "--resolve-all" option to resolve types when disassembling.

	* engine/verify_obj.c: Allow primitive conversions for the InitObj
	instructions. (fix Bug #4535)

2003-07-28  Richard Baumann  <biochem333@nyc.rr.com>

	* engine/lib_type.c: change the GetMemberImpl internal call to check for an
	exact match first when inexact matches are permitted.

	* engine/lib_type.c: implement InterfaceNameMatch.

2003-07-28  Rhys Weatherley  <rweather@southern-storm.com.au>

	* csant/Makefile.am, csant/csant.1: add the "csant.1" man page
	to the Makefile; minor edits to the man page.

	* engine/Makefile.am, engine/.cvsignore, engine/cvmc.c,
	engine/cvmc_ptr.c, engine/cvmc_setup.c, engine/gen_marshal.tc,
	engine/null_coder.c, engine/verify.c, include/il_coder.h:
	start adding support for a treecc-based marshalling system,
	to eventually replace the "CVMCoder_SetupExtern" mess.

	* engine/cvmc.c, engine/cvmc_conv.c, engine/gen_marshal.tc,
	engine/null_coder.c, include/il_coder.h: parameter marshalling.

	* cscc/csdoc.c, csdoc/il2doc.c, dumpasm/dump_type.c,
	ildasm/ildasm_class.c, include/il_dumpasm.h: fix the quoting
	of '&' characters in csdoc output, and other places where
	types may be dumped in XML form.

	* engine/convert.c, support/dynlib.c: use DllNotFoundException
	and EntryPointNotFoundException instead of MissingMethodException
	during PInvoke operations.

2003-07-27  Gopal.V  <gopalv82@symonds.net>
	
	* engine/lib_type.c: Avoid boxing conversions when dealing with
	parameter checks.

	* csant/csant.1: Add a minimal man page for csant .

2003-07-26  Rhys Weatherley  <rweather@southern-storm.com.au>

	* NEWS, configure.in: update version for the "0.5.10" release.

	* configure.in: update working version to "0.5.11".

2003-07-26  Richard Baumann  <biochem333@nyc.rr.com>

	* engine/lib_reflect.c: implement GetAssembly for modules.

2003-07-26  Andrew Mitchell  <ajmitch@gnu.org>

	* tools/pnet_build.sh: Update test building script for the pnet suite.
	
2003-07-25  Richard Baumann  <biochem333@nyc.rr.com>

	* engine/int_proto.h, engine/int_table.c: updates for changes to pnetlib.

	* engine/lib_emit.c: get method body output working.

2003-07-24  Gopal.V  <gopalv82@symonds.net>
	
	* doc/pnet_faq.html: Update the FAQ to include information about 
	Windows.Forms , ADO.NET support and mention DGEE in connection with
	ASP.NET.

	* engine/verify_branch.c: Merge label and current stack by obtaining
	the common type. (Bug #4430)

	* engine/lib_type.c: Remove overriden methods from the search for 
	GetMembersImpl (fixes Bug #3520).

	* engine/verify_branch.c: Fix bug when using "null" types which are
	(ILType*)NULL.

2003-07-24  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/lib_attrs.c: begin adding support for converting security
	attributes into ".capability" blocks.

	* image/link.c: if we cannot find an assembly with the suffix
	".dll", try again with ".DLL".

	* engine/ilrun.c: try both ".EXE" and ".exe" for program suffixes.

2003-07-23  Richard Baumann  <biochem333@nyc.rr.com>

	* engine/int_proto.h, engine/int_table.c: updates for changes to pnetlib
	internal calls.

	* engine/lib_emit.c: implement method body output for dynamic
	assemblies.

2003-07-23  Gopal.V  <gopalv82@symonds.net>
	
	* engine/throw.c: Set stack traces appropriately for the various
	exception functions.

	* engine/lib_emit.c: Fix Module creation to use a null token and
	fix return value of ClrAssemblyCreate.

	* engine/lib_emit.c: Add version information to assemblies created.

	* engine/lib_emit.c: Do not check for parents for <Module> ,
	Interfaces and System.Object in ClrTypeCreate.

	* configure.in: Add the --enable-multilibs=no to allow compilation
	on FreeBSD.

2003-07-23  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/cvm_config.h, engine/dumpconfig.c: remove potentional
	macro redefinition warnings from cvm_config.h; take out the
	"Little Endian" configuration because CVM_LITTLE_ENDIAN doesn't
	actually indicate a little-endian CPU and so it would be confusing;
	use "ILHasThreads" to detect thread support rather than #ifdef's.

	* engine/lookup.c: slight bug in signature example - object refs
	use 'o', not 'O'.

	* engine/lib_stdio.c, include/il_utils.h, support/Makefile.am,
	support/input.c: move the console input code to "support" so that
	it is easier to redirect.

2003-07-23  Thong Nguyen  <tum@veridicus.com>

	* engine/process.c:  Unregister the main thread when a process
	is destroyed so the main thread can be reused.
	
2003-07-22  Gopal.V  <gopalv82@symonds.net>

	* ilnative/ilinternal.c: Add nested type support for dumpLookupType.
	
	* engine/int_table.c: Update internal call table after the ilinternal
	changes.

2003-07-22  Richard Baumann  <biochem333@nyc.rr.com>

	* engine/int_proto.h, engine/int_table.c: add and modify some
	SignatureHelper internal calls.

	* engine/lib_emit.c: implement the AssemblyBuilder.ClrSave,
	SignatureHelper.ClrSigFinalize, and SignatureHelper.ClrSigGetBytes
	internal calls.

	* include/il_types.h: remove my ILType_IsField macro.

	* image/writer.c, image/pecoff_writer.c: fix ILWriterSetStream behavior
	when its given a seekable stream.

	* engine/lib_emit.c: fix switch on PEFileKinds in ClrSave.

	* engine/lib_emit.c: add some null pointer checks and metadata locking
	to ClrModuleCreate.

2003-07-22  Gopal.V  <gopalv82@symonds.net>

	* configure.in, engine/dumpconfig.c, engine/Makefile.am,
	engine/ilrun.c, engine/cvm_config.h: Add a "--dump-config"
	option to list out the build options and multiple "-D" for
	more verbose output.

	* engine/dumpconfig.cs: Add GPL header.

2003-07-22  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/cscc.c, include/il_system.h, support/Makefile.am,
	support/path.c: move the cscc include directories from ${prefix}/lib
	to ${prefix}/share, to be consistent with Debian guidelines.

2003-07-21  Gopal.V  <gopalv82@symonds.net>
	
	* engine/lib_enum.c: Fix a sign extension issue with masking.

	* doc/pnet_faq.html: Solve a parsing problem for the faq.

2003-07-21  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_task.c:
	implement the internalcalls for "System.Diagnostics.Process".

	* engine/lib_task.c: fix Win32-specific compilation issues.

	* engine/lib_task.c: create Win32 pipes using the file descriptor
	functions, to be consistent with the routines in "file.c".

	* engine/ilrun.c, engine/cvmc_setup.c: remove unnecessary TODO markers.

	* engine/int_proto.h, engine/int_table.c, engine/lib_dir.c:
	remove "DirMethods.Copy" which is no longer used.

2003-07-20  Gopal.V  <gopalv82@symonds.net>
	
	* codegen/cg_relop.tc: Special handling for float types to correctly
	operate on NaN floats in <= , < , >= & > operations.

	* cscc/csharp/cs_oper.tc: Fix the EqualitySem to correctly lookup
	op_Equality operations after coercion (and minor typo).

	* engine/lib_enum.c: Fix masking features to retain the sign
	of the masked value.

	* engine/lib_enum.c: Use ", " instead of "," for seperating flagged
	enums.

	* engine/lib_enum.c: Allow enums to be cast to their underlying
	types and other enums with the same underlying type.

2003-07-20  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/unroll_arm.c, engine/unroll_arm_arith.c,
	engine/unroll_arm_branch.c, engine/unroll_arm_const.c,
	engine/unroll_arm_conv.c, engine/unroll_arm_ptr.c,
	engine/unroll_arm_var.c, engine/unroll_x86.c,
	engine/unroll_x86_arith.c, engine/unroll_x86_branch.c,
	engine/unroll_x86_const.c, engine/unroll_x86_conv.c,
	engine/unroll_x86_ptr.c, engine/unroll_x86_var.c: remove the
	old unroller code, since it is now obsolete.

2003-07-20  Richard Baumann  <biochem333@nyc.rr.com>

	* engine/int_proto.h, engine/int_table.c, engine/lib_emit.c: update for
	changes to System.Reflection.Emit.AssemblyBuilder in pnetlib.

	* engine/lib_emit.c: implement most of the remaining internal calls.

	* image/synthetic.c, include/il_types.h: export ILTypeHash for use in
	lib_emit internal calls.

	* image/writer.c, include/il_writer.h: add functions for resetting
	ILWriter properties normally provided on writer creation.

	* engine/lib_emit.c: implement a couple more internal calls.

	* image/pecoff_writer.c, image/writer.c, include/il_writer.h: modify
	ILWriterResetTypeAndFlags to fix the pe headers using back-patching and
	default seekable to false in ILWriterCreate if the supplied stream is
	null.

	* include/il_types.h: add ILType_IsField macro.

2003-07-19  Gopal.V  <gopalv82@symonds.net>
	
	* engine/lib_type.c: enable GetType of array expressions like
	"System.Int32[]".

	* engine/box.c, engine/lib_type.c: Add ILExecThreadPromoteAndUnbox
	method which promotes primitive types while unboxing.

	* engine/lib_array.c: Use ILExecThreadPromoteAndUnbox in array
	set and get methods.

2003-07-19  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/csharp/cs_gather.c: centralize the extraction of method,
	property, and event names so that generic references can be
	handled properly.

2003-07-18  Aditya P. Bansod  <abansod@fullenergy.com>
	
	* engine/lib_info.c: Hack for GetNetBIOSName .
	(Patch #1464, Gopal)

2003-07-18  Gopal.V  <gopalv82@symonds.net>
	
	* engine/lib_type.c: Fix minor bug in Type.ToString() for arrays

	* engine/lib_array.c: Fix bug in MArray set_iii and get_iii to 
	compute the right offset.

2003-07-17  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_array.c, engine/lookup.c, engine/verify_ptr.c,
	image/meta_types.c, include/il_types.h: add the function
	"ILTypeFindOrCreateArray", which will attempt to locate an
	array type in the synthetic hash before creating a new one;
	this is used to prevent unlimited memory growth in loop bodies
	that allocate arrays.

	* engine/lib_reflect.c (DeserializeObject): missing ';' in the
	name of the type passed to "ILExecThreadLookupType".

	* engine/cvm.c: re-enable the PPC register assignment code.

2003-07-16  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/cvm.c: disable the PPC register assignment temporarily.

2003-07-16  Thong Nguyen  <tum@veridicus.com>

	* libgc/win32_threads.c:  Changed GC_CreateThread to return a
	duplicate handle to fix "Suspend Thread Failed" errors when
	the engine closes thread handles.
	
	* image/image.h, image/context.c: Added support for attaching
	user data to contexts.
	
	* include/il_engine.h: Added prototypes for ILExecDeinit,
	ILThreadRegisterForManagedExcecution and
	ILThreadUnregisterForManagedExecution.
	
	* include/il_image.h: Added prototypes for ILContextSetUserData
	and ILContextGetUserData.
		
	* include/il_thread.h: Added prototypes for ILThreadSetPriority,
	ILThreadGetPriority and ILSignalAndWait.
	
	* engine/engine.h, heap.c, ilrun.c, process.c, thread.c:
	Added support for abandoning finalization when the owner process
	of an (orphaned) object is destroyed.
	
	* engine/lib_thread.c: Add preliminary support for Thread.Abort
	
	* engine/process.c: Added support for aborting and waiting for
	"background" threads before the process is destroyed.
	Move GC & thread deinitialization into ILExecDeinit.
	
	* engine/monitor.c: Fixed memory leak in ILMonitorCreate
	that can occur if the system runs out of memory.
	
	* engine/throw.c: Added ILExecThreadThrowThreadAbortException.
	
	* support/hb_gc.c: Make ILGCDisableFinalizers block until
	all finalizers have finished.
	
	* support/thr_defs.h, support/no_defs.c, support/w32_defs.c,
	support/pt_defs.c, support/thread.c: Added support for thread
	priorities.
	
	* support/thr_defs.h: Added signalFunc field to ILWaitHandle.
	
	* support/wait.c: Added implementation of ILSignalAndWait.
	
	* support/wait_event.c, support/wait_mutex.c: Added support for
	WaitHandle signalFuncs (used by ILSignalAndWait) to Mutexes,
	Monitors and Events.
	
	* support/wakeup.c: Added support for cancelling interrupts.
	
2003-07-15  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/marshal.c, image/member.c, image/meta_build.c,
	image/program.h: load ParamDef records on demand so that we can
	eventually deprecate the "-fminimize-parameters" option in cscc.

2003-07-14  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/cs_main.c, cscc/csharp/cs_grammar.y, cscc/csharp/cs_scanner.l:
	introduce a flex scanner hack to distinguish between '<' used as
	an operator and '<' used as a generic type parameter designator;
	make "-fno-generics" the default, requiring "-fgenerics" to compile
	C# code that uses generics.

	* ilasm/ilasm_grammar.y, ilasm/ilasm_output.c, ilasm/ilasm_output.h:
	modify the assembler so that it can output debug information
	for local variable names and their scopes.

2003-07-13  Rhys Weatherley  <rweather@southern-storm.com.au>

	* doc/unrolling.txt, engine/md_arm.h, engine/md_x86.h,
	engine/unroll_branch.c: introduce some extra instructions for
	unsigned comparisons because PPC cannot set the condition
	codes for both signed and unsigned results at the same time
	like x86 and ARM can.

	* engine/cvm.c, engine/cvm_config.h: perform manual register
	assignment for PPC (doubles the PNetMark).

	* engine/cvm_call.c, engine/cvm_dasm.c, engine/cvmc_call.c,
	engine/engine.h, engine/layout.c, engine/process.c: change the
	interface dispatch logic to use IMT's like IBM's RVM, instead
	of the itable's approach we used to have.

2003-07-12  Richard Baumann  <biochem333@nyc.rr.com>

	* engine/lib_emit.c: implement the _IL_TypeBuilder_ClrTypeAddInterface,
	_IL_TypeBuilder_ClrTypeSetParent, _IL_TypeBuilder_ClrTypeImport,
	_IL_TypeBuilder_ClrTypeImportMember, and
	_IL_TypeBuilder_ClrTypeAddOverride internal calls.

	* image/call.c, include/il_program.h: add and implement the
	ILClassSetParent function.

	* engine/lib_emit.c: implement the _IL_MethodBuilder_ClrMethodCreate
	internal call.

2003-07-12  Thong Nguyen  <tum@veridicus.com>

	* support/wakeup.c:  Fix delayed signal race condition in
	ILWakeupWait.

2003-07-12  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/lib_emit.c: fix a warning.

	* engine/unroll.c, engine/unroll_ptr.c, engine/unroll_var.c:
	fix some ARM-related bugs in the generic unroller.

	* engine/md_arm.h, engine/arm_codegen.h: minor tweaks to ARM macros.

	* doc/unrolling.txt, engine/Makefile.am, engine/md_default.h,
	engine/md_x86.c, engine/md_x86.h, engine/unroll.c,
	engine/unroll_arith.c: unroll "fcmpl" and "fcmpg" for x86.

	* engine/md_arm.h, engine/md_x86.h, engine/unroll.c,
	engine/unroll_arith.c: unroll some 64-bit integer operations.

	* engine/lib_emit.c: fixes for 64-bit platforms; use the correct
	token value for the call to "ILClassCreate".

	* engine/unroll_ptr.c: tune short branches a little for x86
	to increase code density and hence CPU caching behaviour.

	* engine/Makefile.am, engine/md_arm.c, engine/md_x86.c:
	enable the generic unroller by default; only compile in the
	md_arm and md_x86 code for the respective platforms.

	* libffi/Makefile.am, libffi/Makefile.in: remove ffitest from
	the build because it breaks the ia64 version.

2003-07-11  Richard Baumann  <biochem333@nyc.rr.com>

	* engine/lib_emit.c: implement the _IL_TypeBuilder_ClrTypeCreate
	internal call.

2003-07-11  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/md_arm.h, engine/md_x86.c, engine/md_x86.h,
	engine/unroll.c, engine/unroll_const.c, engine/unroll_ptr.c:
	implement generic unrolling for constant and pointer operations.

	* engine/md_arm.h, engine/md_x86.c, engine/md_x86.h, engine/unroll.c,
	engine/unroll_branch.c, engine/unroll_conv.c: implement generic
	unrolling for branch and conversion opcodes.

	* engine/md_arm.h, engine/unroll.c: some slight fixes for ARM.

	* engine/md_arm.h, engine/arm_codegen.h: macro expansion bugs on ARM.

	* doc/unrolling.txt: update the generic unroller documentation
	to describe all of the code generation macros.

2003-07-10  Rhys Weatherley  <rweather@southern-storm.com.au>

	* ChangeLog, doc/ChangeLog-4: move the bulk of ChangeLog into
	doc/ChangeLog-4 to trim things down a little.

	* engine/md_arm.c, engine/md_arm.h, engine/md_default.h,
	engine/md_x86.c, engine/md_x86.h, engine/unroll.c,
	engine/unroll_arith.c: add some more code to the generic unroller.

2003-07-09  Gopal.V  <gopalv82@symonds.net>
	
	* engine/lib_reflect.c: Generate arrays of the attribute type 
	instead of generating Object[] arrays .

	* engine/verify_call.c: Fix minor bug (or typo) in verification
	of the ldvirtftn.

2003-07-09  Thong Nguyen  <tum@veridicus.com>

	* engine/thread.c, engine/process.c: Fix bug that caused the
	finalizer to destroy the main thread even though if
	ILProcessDestroy has already destroyed it.

2003-07-09  Rhys Weatherley  <rweather@southern-storm.com.au>

	* ilalink/link_main.c, ilalink/link_res.c, image/Makefile.am,
	image/image.h, image/winres_reader.c, image/winres_writer.c,
	include/il_linker.h, include/il_writer.h: put some of the
	support code in place for writing win32 resources and icons
	(not complete yet).

	* cscc/c/c_grammar.y: add some "error" declarations to the
	C grammar to improve error handling in the parser.

2003-07-08  Thong Nguyen  <tum@veridicus.com>

	* tests/test_thread.c: Made the test GC aware because
	on windows, threads go through the GC.
	
2003-07-08  Gopal.V  <gopalv82@symonds.net>
	
	* cscc/common/cc_preproc.c: Modify to ignore escape sequences in
	literal strings.
	
2003-07-08  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/cvm_inline.c: use ILExecThreadCallVirtualV instead
	of ILExecThreadCallVirtual for the StringBuilder.Append
	inline because the va_list packing code doesn't work on
	PPC GNU/Linux.

	* engine/ilrun.c: modify "ilrun" to avoid va_list's also.

	* cscc/common/cc_compat.c, image/winres_reader.c, include/il_system.h,
	support/strings.c: add "ILStrNICmp" as a common support function.

2003-07-08  Thong Nguyen  <tum@veridicus.com>

	* engine/lib_thread.c: Monitor speed improvements.  Prevent
	multiple threads from claiming the same monitor into their
	free lists.
	
	* include/il_thread.h, support/thr_defs.h, support/thread.c:
	Add support for registering thread cleanup handlers.
	
	* support/thread.c: Fix race condition bug in ILThreadJoin
	by reordering the ILWakeupSetLimit, _ILWakeupQueueAdd and
	_ILMutexLock calls.  This race condition would cause 
	ILThreadJoin to miss a signal and deadlock.
	
	* engine/engine.h: Added "isFinalizerThread" field to ILExecThread
	so finalizer threads can be treated specially when the process
	shutsdown.
	
	* engine/heap.c: Object finalizers are now responsible for
	registering the finalizer thread with the engine.

	* engine/process.c: On process shutdown, non-finalizer threads
	(both foreground and background) are now destroyed before the
	finalization thread performs its last run.
	
	* support/hb_gc: Improve startup time by delay-creating the
	finalizer thread.  Decoupled the GC code from the engine so that
	it needs to know nothing about the execution engine.  Added more
	comments.
	
	* support/thread.c: Add support for thread cleanup handlers.

2003-07-07  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/Makefile.am, image/image.h, image/pecoff_loader.c,
	image/winres_reader.c, include/il_image.h: add code to "image"
	to read the contents of the ".rsrc" section in an IL binary.

2003-07-07  Gopal.V  <gopalv82@symonds.net>
	
	* cscc/csharp/cs_gather.c: Fully generate class members before
	generating nested classes.

2003-07-07  Thong Nguyen <tum@veridicus.com>
	
	* support/wakeup.c: Prevent ILWakeupWait from waiting on the
	condvar if the wakeup object is already at its limit to fix
	a race condition that can occur if wakeup objects are registered
	& subsequently signalled before ILWakeupWait is called.
		
2003-07-06  Thong Nguyen <tum@veridicus.com>

	* engine/lib_thread.c: Fixed monitor locking mismatch bug under
	Linux.
	
	* libgc/linux_threads.c: Fixed bug where pthread_create blocks
	instead of returning when thread creation fails.

2003-07-06  Rhys Weatherley  <rweather@southern-storm.com.au>

	* Makefile.am, configure.in, ilranlib/.cvsignore,
	ilranlib/Makefile.am, ilranlib/ilranlib.1, ilranlib/ilranlib.c:
	add the "ilranlib" program to the system.

	* cscc/Makefile.am, ilranlib/Makefile.am, ilsize/Makefile.am,
	ilstrip/Makefile.am: add some symlinks to make the IL tools
	look like a cross-compile toolchain with the prefix "cli-unknown".

	* configure.in, ilranlib/Makefile.am: locate the system version
	of "ar" and link it as "cli-unknown-ar".

2003-07-05  Thong Nguyen  <tum@veridicus.com>

	* engine/lib_thread.c: Implemented internal calls Thread.Abort
	& Reset.  Fix for resource leak that occurs when threads are
	collected without ever starting.
	
	* engine/engine.h, engine/thread.c: Renamed a few fields to be
	more consistant.
	
	* support/thread.c: Changed ILThreads so that the underlying OS
	thread is not created until start is called.  ILThreadRun now 
	starts immediately rather than suspending until start is called.
	
	* libgc/win32_threads.c:  Changed MAX_THREADS to 1024.
	
	* engine/process.c, engine/thread.c, support/hb_gc.c,
	support/thread.c: Moved background threads support down to
	the "ILThread" level rather than the "ILExecThread" level.
	
	* libgc/win32_threads.c, libgc/configure.in, libgc/include/gc.h:
	Fix so that GC_CreateThread gets registered with the GC even if
	libgc is compiled under cygwin.
	
	* docs/libgc_changes.txt: Documents changes made to libgc.
	
2003-07-05  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/csharp/cs_gather.c, image/member.c, include/il_program.h:
	search for the "virtual" method corresponding to an "override"
	and report a bug if one isn't present (Bug #4196); property
	signatures should never use the "hasthis" flag, as it is stored
	on the underlying accessor methods instead.

	* codegen/cg_gen.c, codegen/cg_gen.h, codegen/cg_nodemap.c,
	codegen/cg_nodemap.h, cscc/csharp/cs_cast.tc, cscc/csharp/cs_oper.tc:
	fix bug #4197 - "unchecked" is required for numeric constant
	casts such as "uint" to "int".

	* Makefile.am, configure.in, ilstrip/.cvsignore, ilstrip/Makefile.am,
	ilstrip/ilstrip.1, ilstrip/ilstrip.c: add the "ilstrip" program.

	* engine/convert.c, engine/cvm.c, engine/engine.h: lock out
	the method cache while the unroller is running.

2003-07-04  Gopal.V  <gopalv82@symonds.net>
	
	* include/il_sysio.h, support/socket.c: Partially implelement the 
	socket options.

2003-07-04  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/class.c (ILClassCreate): forcibly change TypeRef tokens
	into TypeDef tokens (fixes Bug #4107).

2003-07-03  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_grammar.y: make the C compiler more robust against
	failures of "CTypeDefineStructOrUnion".

	* cscc/c_main.c: quote cpp arguments that contain spaces on MacOS X.

	* cscc/cscc.c (IsSinglePlugin): single-file plugins end in "-s",
	not ".s".

	* cscc/c/c_oper.tc (ILNode_Conditional): handle function pointers
	as arguments to "?:".

	* cscc/c/c_ainit.tc, cscc/c/c_grammar.y: treat "union" initializers
	the same as "struct" initializers.

	* cscc/cscc.c, ilalink/link_main.c: change the default output
	file from "a.out.exe" to "a.exe" (Win32) or "a.out" (non-Win32),
	to be consistent with gcc.

	* image/pecoff_writer.c (_ILWriteFinal): move the ".ildebug"
	section to the end of the image so that it can be easily stripped.

2007-07-03  Thong Nguyen  <tum@veridicus.com>

	* support/hb_gc.c: ILGCDeinit now performs a garbage collection
	before calling the finalizers one last time.
	
	* engine/process.c: ILProcessDestroy now relies on ILGCDeinit
	to run final GC and finalization run.

2003-07-01  Gopal.V  <gopalv82@symonds.net>
	
	* cscc/java/java_grammar.y: wrap For statements in a new scope
	(fixes bug #4127)

2003-07-01  Rhys Weatherley  <rweather@southern-storm.com.au>

	* doc/c_users_guide.html: update the user's guide for the C
	compiler to describe the latest conventions.

	* ilheader/ilheader.c: modify the "ilheader" program so
	that it only outputs the type definitions, because the
	methods, fields, etc, can be accessed via other means.

	* cscc/c/c_grammar.y, cscc/c/c_scanner.l: remove the "__invoke__"
	keyword from the C compiler, because it is no longer required.

2003-07-01  Thong Nguyen  <tum@veridicus.com>
	
	* engine/heap.c:  Make ILExecAllocAtomic registers finalizers.
	
	* support/time.c:  Map timezone to _timezone on windows builds.
	
	* support/hb_gc.c:  Prevent the finalizer thread from
	recursively calling finalizers.
	
2003-06-30  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_grammar.y, cscc/c/c_scanner.l: add "type::name" syntax
	to the C compiler, to replace the clumsy "__invoke__ type.name".

2003-06-30  Jeff Post  <j_post@pacbell.net>

	* csdoc/doc_html.c: add code to generate href links to the
	output of cssrc2html.

2003-06-30  Thong Nguyen  <tum@veridicus.com>

	* engine/lib_thread.c: Fix argument exception instead of
	SyncLockException thrown.
	
	* engine/cvm_inline.c: Monitor.Enter and Monitor.Exit now
	properly save/restore the stack state.  Fixes case where
	exceptions not always thrown.
	
2003-06-29  Thong Nguyen  <tum@veridicus.com>

	* configure.in: Made gcc threading model detected occur only if
	the system isn't windows or linux (windows and linux have default
	forced threading models).
	
	* engine/layout.c: Fixed bug so that classes that don't implement
	interfaces nor have static fields are properly identified as
	managed or unmanaged.  

	* engine/method_cache.c: work around compilers that don't allow
	arithmetic on void * pointers.

	* support/thr_choose.h: make sure that CreateThread is redirected
	to GC_CreateThread under all Win32 environments, because the
	static library won't properly attach otherwise.

	* support/hb_gc.h: Refactored some code.  Finalizers now always halt
	the current thread.

2003-06-28  Rhys Weatherley  <rweather@southern-storm.com.au>

	* configure.in: add "mingw" to the set of detected platforms
	for Win32 threading support.

	* engine/cvm_ptr.c, engine/engine.h, engine/heap.c, engine/layout.c:
	use "_ILEngineAllocAtomic" to allocate objects that don't have any
	GC'able fields, to prevent the GC from scanning the large static
	data areas in C applications, which rarely include managed types.

	* cscc/c/c_grammar.y: recognise "__const__" as an attribute name,
	to compile code that uses glibc headers.

	* cscc/c/c_types.c: clone bit-field declarations when a struct
	type is cloned.

	* cscc/c/c_declspec.h, cscc/c/c_grammar.y: inhibit the "useless
	keyword" warning for anonymous enumerations.

	* ilalink/link_main.c: strip multiple "/" characters from the end
	of "ar" entry names because some archives have a "//" entry.

	* cscc/c/c_ainit.tc, cscc/c/c_const.tc, cscc/c/c_defs.tc,
	cscc/c/c_grammar.y, cscc/c/c_lexutils.c, cscc/c/c_scanner.l,
	cscc/c/c_types.c, cscc/c/c_types.h: add support for wide character
	and wide string constants.

	* cscc/c/c_internal.c (CGenSizeOf): the boxed form of "long double"
	is "OpenSystem.C.LongDouble", not "OpenSystem.C.NativeFloat".

	* cscc/c/c_oper.tc (ILNode_SizeOfExpr): special "sizeof" cases
	for calculating the size of string constants.

2003-06-27  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/csharp/cs_gather.c, cscc/csharp/cs_internal.h,
	cscc/csharp/cs_modifiers.c: report errors for "Finalize" methods
	that are not properly declared as constructors (Bug #4062).

	* engine/lib_dir.c, engine/lib_file.c, include/il_engine.h:
	convert '\' into '/' in pathnames to work around Windows programmers
	who don't use "Path.DirectorySeparatorChar" in their C# code.

	* cscc/c/c_ainit.tc (CArrayInitializerSize): further improvements
	to array size computation - handle nested structs within structs, etc.

	* cscc/c/c_ainit.tc, cscc/c/c_defs.tc, cscc/c/c_grammar.y,
	cscc/c/c_oper.tc: rearrange the array initialization code so that
	all code generation and semantic analysis is in "c_ainit.tc".

	* cscc/c/c_function.c, cscc/c/c_function.h, cscc/c/c_grammar.y,
	ilalink/link_class.c, ilalink/link_init.c: force the ".init"
	function to be called when a C library is used from a C#
	application which doesn't use the crt0 process.

	* doc/c_language_abi.html: update the ABI specification for the
	C compiler to match the latest changes.

	* cscc/c/c_ainit.tc, cscc/c/c_builtin.tc, cscc/c/c_defs.tc:
	initialization of arrays containing strings (e.g. char[] x = "abc").

	* cscc/c/c_ainit.tc: finish the implementation of array and
	structure initializers.

2003-06-27  Thong Nguyen <tum@veridicus.com>

	* support/wait_mutex.c: Fix recursive entry/leave bug in
	  ILWaitMonitorSpeculativeLeave/CompleteLeave.

	* engine/monitor.c: Added implementation of SetObjectMonitor for
	  hashing monitors.

2003-06-26  Gopal.V  <gopalv82@symonds.net>
	
	* engine/Makefile.a: Add monitor.c to the list of files

	* cscc/common/cc_options.c: Add a "--version" command line 
	option to cscc.

2003-06-26  Thong Nguyen  <tum@veridicus.com>

	* engine/lib_thread.c:  New monitor implementation.  Uses 
	thread local free monitor lists instead of GC.  This allows 
	monitors to be used with objects using GC "atomic" memory 
	regions (type of memory used by arrays and strings).

	* engine/ilrun.c, engine/process.c, engine/thread.c: New code to 
	prevent the process from exiting until all user threads have 
	finished executing.

	* engine/Makefile.am: Added monitor.c

	* engine/cvm_inline.c:	Added support for inlining Monitor.Enter
	and Monitor.Exit.

	* engine.h:  Added support for engine level monitors and 
	preliminary hashing monitors support.

	* engine/heap.c:  Add support fo abstracted object headers.
	Add support code to allow finalizers to run from finalizer 
	thread.

	* engine/int_proto.h, engine/int_table.h:  New internal method 
	imports for threading support.

	* engine/lib_defs.h:  Support macros for abstracting object 
	headers.  Support code for header and hash based monitors.

	* engine/lib_gc.c:  Changed code to support abstracted object 
	headers.

	* engine/lib_thread.c:  Implemented threading internal methods
	(Thread.Start etc). Implemented monitor support.  Added new 
	internal method InitializeThread.

	* engine/process.c:  Call to the new ILGCDeinit function.

	* engine/thread.c:  Implemented a couple more threading related 
	methods. GetCurrentClrThread and ILThreadRegisterForManagedExcution.
	
	* engine/monitor.c:  Implemention of memory saving hashing 
	monitors.

	* include/il_engine.h:  Added typedef for ILExecMonitor.

	* include/il_gc.h:  Added ILGCDeinit and and
	ILGCRegisterGeneralWeak.
	
	* include/il_thread.h:  IThreadRegisterForManaged  declaraction.

	* support/def_gc.h:  Added null implementations of new GC 
	methods.

	* support/hb_gc.c:  Moved GC finalizer into a seperate thread.
	Added waiting for pending finalizer support.  Implemented
	various new threading related methods (GCDeinit etc).
	(Patch #1657, Gopal)  

2003-06-26  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_lvalue.tc (ILNode_CDeref): decay array types in the
	result of the '*' operator.

	* cscc/c/c_types.c (CloneStruct): copy an entire field's type,
	including the modifier prefixes.

	* cscc/c/c_typeout.c (OutputPendingClass): don't output class
	references, as they aren't defined in the current module.

	* cscc/c/c_grammar.y, cscc/c/c_types.c, cscc/c/c_types.h:
	resolve anonymous enumerated types and constants to the
	underlying type because there is no way to define an
	enumerated type that will work across modules otherwise.

	* cscc/c/Makefile.am, cscc/c/c_ainit.tc, cscc/c/c_defs.tc,
	cscc/c/c_grammar.y, cscc/c/c_internal.h, cscc/c/c_lvalue.tc,
	cscc/c/c_oper.tc, cscc/c/c_stubs.tc, cscc/c/c_types.c,
	cscc/c/c_types.h: move the array initializer node types into
	"c_ainit.tc"; implement a better algorithm for calculating
	the size of an array initializer.

	* support/hb_gc.c: missing return value.

	* engine/lib_defs.h: make the object header access macros 64-bit safe.

	* engine/cvm_except.c, engine/throw.c: add the stack trace to
	exception objects that are created by "ILExecThreadThrowSystem".

	* engine/engine.h, engine/thread.c: fix some prototyping bugs.

2003-06-25  Rhys Weatherley  <rweather@southern-storm.com.au>

	* cscc/c/c_function.c, cscc/c/c_grammar.y: implement global
	initializer flushing in the C compiler.

	* cscc/c/c_grammar.y, ilalink/Makefile.am, ilalink/link_create.c,
	ilalink/link_image.c, ilalink/link_init.c, ilalink/link_library.c,
	ilalink/linker.h: link initializers and finalizers in C applications.

	* cscc/c/c_lvalue.tc (ILNode_CDeref): remove the '*' dereference
	layer if the argument is a function pointer, so that "(*f)()" works.

	* cscc/c/c_oper.tc (ILNode_Conditional): error in semantic analysis
	for the third sub-expression of "?:".

	* cscc/c/c_oper.tc (ILNode_CastType): it is always possible to
	cast to "void" in C.

	* cscc/c/c_grammar.y: permit "register" to be used in a
	formal parameter list.

	* cscc/c/c_types.c (CTypeGetElemType): preserve function pointer
	modifiers when dereferencing an array of function pointers.

	* codegen/cg_decls.tc, codegen/cg_nodes.tc, cscc/csharp/cs_decls.tc,
	cscc/csharp/cs_grammar.y, doc/c_users_guide.html: introduce some
	new syntax to make it easier to call C code from C#.

2003-06-24  Gopal.V  <gopalv82@symonds.net>
	
	* cscc/java/.cvsignore, cscc/bf/.cvsignore : add generated
	files to .cvsignore to avoid being generated as a patch.

2003-06-24  Rhys Weatherley  <rweather@southern-storm.com.au>

	* support/dynlib.c: use the "LoadLibrary" function under both
	cygwin and non-cygwin win32 installations.

2003-06-24  Jeff Post  <j_post@pacbell.net>

	* csdoc/Makefile.am, csdoc/cssrc2html.c, csdoc/cssrc2html.h,
	csdoc/fontcolors.c, csdoc/fontcolors.h, csdoc/scanner.c,
	csdoc/scanner.h, csdoc/tokens.h: add the "cssrc2html" program
	to the tree.

2003-06-23  Gopal.V  <gopalv82@symonds.net>
	
	* cscc/common/cc_options.c, cscc/cscc.1 , doc/pnettools.texi: Add
	a new "-winforms" option to simplify compiling WinForms applications.

	* cscc/vb/vb_grammar.y: Fix error with Bison 1.75

	* cscc/java/java_grammar.y: Fix error with Bison 1.75
	
	* cscc/java/java_grammar.y: Fixed another error with Bison 1.75

2003-06-23  Rhys Weatherley  <rweather@southern-storm.com.au>

	* image/class.c, image/context.c: fix a scope bug in class name
	lookup - it was sometimes finding nested classes when looking
	for global ones.

2003-06-22  Yannis Bres  <Yannis.BRES@sophia.inria.fr>

	* engine/cvmc.c, engine/ilrun.c, engine/method_cache.c,
	engine/method_cache.h, engine/null_coder.c, engine/process.c,
	ildb/ildb_run.c, include/il_coder.h, include/il_engine.h: Add 
	the '-C' option to control the size of the converted method cache.
	(Gopal, Patch #1643 and fixes Bug #1014)

2003-06-22  Gopal.V  <gopalv82@symonds.net>

	* codegen/cg_coerce.c: Fix indirect casting to use a 3 step conversion
	instead of obtaining rules.

	* engine/ilrun.c: Explicitly call the static constructor of the class
	containing the entry point function. (fixes Bug #3593)
	
2003-06-22  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/process.c (ILExecProcessDestroy): run a final garbage
	collection and finalizer pass just before engine shutdown.

	* csdoc/doc_tree.h, engine/lib_string.c, ilalink/link_library.c,
	image/image.h, support/hashtab.c, support/intern.c: adjust some
	hash table sizes to be prime numbers rather than powers of two,
	to help spread items more evenly across the table.

2003-06-21  Gopal.V  <gopalv82@symonds.net>
	
	* cscc/cs_main.c , cscc/csharp/cs_scanner.l , cscc/csharp/cs_internal.h:
	Use CSLatin1Charset to detect the -flatin1-charset option in cs_main.

2003-06-21  Thong Nguen  <tum@veridicus.com>

	* engine/lib_enum.c: fixed bug where flag enums don't return correct
	string format if the enum value matches exactly one value.

	* support/thread.c: fixed bug where ILThreadJoin incorrectly evaluates
	state of the thread to join.

2003-06-21  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/int_proto.h, engine/int_table.c, engine/lib_info.c:
	add the "InfoMethods.GetPlatformID" internalcall.

	* libffi/src/x86/sysv.S, libffi/src/x86/win32.S: make the x86 libffi
	code more robust in the face of callee-pop winapi conventions.

	* codegen/cg_cast.tc: fix incorrect code generation for
	casting "uint" to "byte".

2003-06-20  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/cvm.h: duplicate opcode value where it shouldn't be.

	* ilalink/link_library.c (ClassHash_Match): resolve nested types
	properly in the linker, so that if the same nested type name is used
	in two contexts, it will find the right context.

2003-06-19  Rhys Weatherley  <rweather@southern-storm.com.au>

	* engine/verify.c: enable the verifier's debug mode by default.

	* engine/cvm.h, engine/cvm_call.c, engine/cvm_dasm.c,
	engine/cvm_lengths.c, engine/cvmc.c, engine/cvmc_call.c,
	engine/null_coder.c, engine/verify.c, engine/verify_call.c,
	include/il_coder.h: re-implement tail calls in the verifier,
	coder, and interpreter.

2003-06-17  Rhys Weatherley  <rweather@southern-storm.com.au>

	* support/dynlib.c: put the MacOS X version of dynamic loading
	before the generic "dlopen" version, as some MacOS X systems
	have "dlopen", but it doesn't do the right thing.

	* csant/csant_dir.c, cscc/bf/bf_grammar.y, engine/lib_math.c,
	engine/lib_socket.c, ildb/ildb_input.c, support/allocate.c,
	support/dns.c, support/dynlib.c, support/filemap.c,
	support/socket.c, support/test_float.c: #include fixes for
	non-cygwin win32 builds.

	* support/dns.c: #include fix for cygwin win32 builds.

	* configure.in, support/dns.c: detect sin6_scope_id because some
	older OS'es don't have it in struct sockaddr_in6.

	* NEWS, configure.in: update version for the "0.5.8" release.

	* configure.in: update working version to "0.5.9".

	* engine/lib_reflect.c: closures are not available if libffi
	is disabled.


