
2003-10-15  Rhys Weatherley  <rweather@southern-storm.com.au>

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

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.
