+2004-10-20 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (MonoSymbolFile.Write): Sort the method table
+ before actually writing it to disk and update MethodEntry.Index.
+
+ * MonoSymbolTable.cs (MethodEntry.Index): Make this a writable
+ property; set it after creating all the methods and sorting the
+ method table.
+
+2004-09-21 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (MonoDebuggerSupport.CheckRuntimeVersion): New
+ public method.
+
+2004-08-27 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (MonoSymbolFile..ctor): Read the GUID from the
+ symbol file before reading the OffsetTable.
+
+2004-08-27 Chris Toshok <toshok@ximian.com>
+
+ * MonoSymbolFile.cs (MonoSymbolFile.ReadSymbolFile): pass name to
+ MonoSymbolFile.ctor, not filename, so we load the .mdb file
+ instead of the .dll.
+ (MonoSymbolFile.ctor): pass FileAccess.Read to the FileStream
+ ctor.
+
+2004-08-27 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (MonoDebuggerSupport.GetGuid): The function is
+ called Module.Mono_GetGuid(), not Module.MonoDebugger_GetGuid().
+
+2004-07-30 Martin Baulig <martin@ximian.com>
+
+ The library is now called Mono.CompilerServices.SymbolWriter.dll
+ and is in the Mono.CompilerServices.SymbolWriter namespace.
+
+ * MonoSymbolFile.cs (MonoDebuggerSupport.GetGuid): New public
+ static method.
+ (MonoSymbolFile.WriteString): Use the BinaryWriter's method.
+ (MonoSymbolFile.ReadString): Use the BinaryReader's method.
+ (MonoSymbolFile.Write): Write the module's Guid into the symbol
+ file.
+
+ * MonoSymbolTable.cs, MonoSymbolWriter.cs: Reworked the API.
+
+2004-07-27 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (MonoSymbolFile.Write): Sort the methods
+ according to their token values.
+ (MonoSymbolFile.ReadSymbolFile): Support reading the debugging
+ information from an external ".mdb" file.
+
+ * MonoSymbolTable.cs
+ (SourceFileEntry): Make the .ctor protected, not internal.
+ (SourceFileEntry.DefineMethod): This is no longer specific to
+ System.Reflection(.Emit).
+ (MethodEntry): We don't need the class and parameter types, the
+ JIT is already getting this information automatically.
+ (MethodEntry.ClassTypeIndex): Make this obsolete.
+ (MethodEntry.ParamTypeIndicies): Likewise.
+
+2004-07-02 Raja R Harinath <rharinath@novell.com>
+
+ * Makefile (LIBRARY_USE_INTERMEDIATE_FILE): Define.
+ (LIBRARY_COMPILE): Simplify.
+
+2004-06-24 Raja R Harinath <rharinath@novell.com>
+
+ * Makefile (LIBRARY_COMPILE): Only define for W32.
+
+2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * Makefile: build using mcs on windows.
+
+2004-06-19 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolTable.cs
+ (SourceFileTable.Namespaces): New public property.
+
+2004-06-02 Martin Baulig <martin@ximian.com>
+
+ Set version number to 37.
+
+2004-05-23 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * MonoSymbolTable.cs (BuildLineNumberTable): Avoid arraylist.
+
+2004-01-16 Martin Baulig <martin@ximian.com>
+
+ Set version number to 36.
+
+ * MonoSymbolFile.cs (MonoSymbolFile): Removed 'FindMethod' and
+ 'MethodLookup'.
+
+ * MonoSymbolTable.cs (MethodEntry): Don't write the method's full
+ name into the symbol file.
+
+2004-01-16 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (MonoDebuggerSupport): As suggested by Ben
+ Maurer, create a delegate type for each of the methods and then
+ store the method.
+
+2004-01-15 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (MonoDebuggerSupport): New public class
+ containing static wrappers for calling the `MonoDebugger_*'
+ function in S.R.Assembly.
+
+2004-01-13 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolTable.cs: Added more #region's and a comment at the
+ top of the file.
+
+ * MonoSymbolWriter.cs (SourceMethod.BuildLineNumberTable): Removed
+ it here since it's in MethodEntry again.
+
+2004-01-13 Martin Baulig <martin@ximian.com>
+
+ * ChangeLog, MonoSymbolTable.cs: Reviewed Ben's patches. For
+ those which are not ok, I'll add detailed comments to the source
+ code.
+
+2003-12-28 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ [Revision 1.41, not approved. Martin]
+ * MonoSymbolTable.cs (MethodEntry): kill more
+ useless fields.
+
+2003-12-28 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ [Revision 1.40, not approved. Martin]
+ * MonoSymbolTable.cs (MethodEntry): Remove the
+ SourceFileIndex field, we already have the info.
+
+2003-12-28 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ [Revision 1.39, approved. Martin]
+ * MonoSymbolTable.cs: Don't make the MethodIndexEntry
+ part of the method entry class, because it just
+ takes up extra space.
+
+2003-12-28 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ [Revisions 1.37 and 1.38; not approved. Martin]
+ * MonoSymbolTable.cs (MethodEntry.BuildLineNumberTable): Removed.
+
+ * MonoSymbolTable.cs, MonoSymbolWriter.cs: Use
+ fewer arrays, dont use arraylists with structs.
+
+2003-12-27 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * MonoSymbolFile.cs: Much, much better string writing.
+
+2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ [Revision 1.36, approved. Martin]
+ * MonoSymbolTable.cs: Fewer StringBuilder allocs.
+
+2003-12-08 Zoltan Varga <vargaz@freemail.hu>
+
+ * MonoSymbolWriter.cs: Create ArrayLists only when needed.
+
+2003-12-07 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ [Revision 1.35, approved. Martin]
+ * MonoSymbolTable.cs: It is faster to do a linear search
+ than it is to make a hashtable. Even though the linear
+ search is O(n^2) while the hashtable is O(n), the allocation
+ cost for a hashtable is *very* high, especially when only
+ a few members will be added.
+
+2003-09-06 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs: Removed debugging output.
+
+2003-08-05 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolTable.cs (MethodEntry.Index): New public field.
+
+2003-06-27 Zoltan Varga <vargaz@freemail.hu>
+
+ * MonoSymbolWriter.cs: Enable calling of DefineDocument multiple
+ times with the same URL.
+
+2003-06-10 Zoltan Varga <vargaz@freemail.hu>
+
+ * MonoSymbolFile.cs: Fix off-by-one error.
+
+2003-03-22 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolTable.cs (MethodEntry.LocalNamesAmbiguous): New public
+ field. Specifies whether two local variables have the same name.
+
+2003-03-13 Martin Baulig <martin@ximian.com>
+
+ Added basic support for lexical scopes. This is just to tell a
+ debugger that a local variable is only available in a specific
+ lexical scope and that another variable of the same name may exist
+ in another lexical scope. See debugger/test/TestLexicalScope.cs
+ for examples.
+
+ * MonoSymbolTable.cs (LexicalScopeEntry): New class.
+ (LocalVariableEntry): Added `BlockIndex' field which specifies the
+ lexical scope of this variable.
+
+ * MonoSymbolWriter.cs (SourceBlock): Removed, we're now using
+ LexicalScopeEntry instead.
+
+2003-02-22 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolTable.cs: Incremented version number.
+
+2003-02-22 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (MonoSymbolFile.FindMethod): Fixed a bug.
+ (MonoSymbolFile.MethodLookup): New method.
+
+2003-02-18 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (MonoSymbolFile.GetMethod): Added overloaded
+ version which takes a MethodBase.
+
+2003-02-18 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolTable.cs (MethodIndexEntry): New public struct.
+
+ * MonoSymbolFile.cs (MonoSymbolFile.GetMethodByToken): New method.
+
+2003-02-18 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (MonoSymbolFile.Assembly): New public property.
+
+ * MonoSymbolTable.cs (MethodEntry.MethodBase): New public property.
+ (MethodEntry.LocalTypes): New public variable.
+
+2003-02-18 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (MethodEntry.ThisTypeIndex): Renamed to
+ ClassTypeIndex; provide this for all methods so we can get the
+ class of static methods.
+
+2003-02-10 Nick Drochak <ndrochak@gol.com>
+
+ * Mono.CSharp.Debugger.build: passing the /r using an 'arg' node works.
+ The <include> node wasn't getting to the compiler. This fixes build
+ breakage on cygwin.
+
+ * MonoSymbolFile.cs: Qualify which Min method. Fixes build breakage
+ on cygwin.
+
+2003-02-09 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolWriter.cs (MonoSymbolWriter.ctor): We don't need the
+ `mbuilder_array' anymore.
+
+2003-02-09 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolWriter.cs (SourceFile): Derive from SourceFileEntry.
+ (SourceBlock): We don't need source lines here.
+ (SourceMethod): We're always constructed with source info.
+
+ * MonoSymbolTable.cs: Added support for namespaces.
+ (NamespaceEntry): New struct.
+ (SourceFileEntry.DefineNamespace): New method.
+ (MethodEntry.BuildLineNumberTable): The table is already sorted,
+ so we don't need to do this here.
+
+2003-02-09 Martin Baulig <martin@ximian.com>
+
+ * IMonoSymbolWriter.cs: Ooops, I forgot to remove this.
+
+2003-02-08 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolDocumentWriter.cs: Removed.
+
+ * MonoSymbolWriter.cs (SourceFile): Implement ISymbolDocumentWriter.
+
+2003-02-08 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (GetMethodSource): New public method.
+ (FindMethod): Return the correct index.
+
+2003-02-07 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (Methods, Sources): New public properties.
+
+2003-02-07 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs (MonoSymbolFile.ReadSymbolFile): New public
+ static method, returns null (without throwing an exception) if the
+ assembly doesn't have any debugging info.
+
+2003-02-07 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolWriter.cs (MonoSymbolWriter.Initialize): Removed the
+ custom initialization function.
+
+ * MonoSymbolTableWriter.cs: Removed; the code is now in
+ MonoSymbolFile.cs and MonoSymbolWriter.cs.
+
+2003-02-07 Martin Baulig <martin@ximian.com>
+
+ * MonoSymbolFile.cs: The symbol file is now a resource in the
+ assembly instead of a separate file.
+
+ * MonoSymbolTable.cs: Did a few more cleanups, sort the line
+ number table and remove duplicate line numbers.
+
+2003-02-05 Martin Baulig <martin@ximian.com>
+
+ Modified the symbol file format to speed up method looks by name
+ and cleaned this up a lot.
+
+ * MonoSymbolFile.cs: New public class. This is now a public class
+ and writes and reads the symbol file.
+
+ * IMonoBinaryReader.cs: Removed.
+
+ * MonoSymbolTable.cs: Set version number to 29.
+
+2003-01-17 Zoltan Varga <vargaz@freemail.hu>
+
+ * MonoSymbolWriter.cs (OpenMethod): Make it work on constructors.
+
+2002-10-13 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs: Set version number to 28.
+ (SourceFileEntry): Read the methods when they're needed.
+ (MethodSourceEntry): Made this a struct, not a class.
+
+2002-10-13 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs: Set version number to 27. Added a source
+ file table which is used to search a method by source file + line number.
+
+2002-09-21 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs: Set version number to 26. Removed all the dynamic
+ stuff, this library now just deals with the compiler generated symbol table.
+ The dynamic stuff is private between the JIT and the debugger.
+
+2002-09-21 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs: Set version number to 25. Added information about
+ local variables.
+
+2002-09-20 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs: Set version number to 24. Added a type index
+ table. Write the type of a local variable or a parameter as an index
+ into this table.
+
+2002-09-20 Martin Baulig <martin@gnome.org>
+
+ * IMonoSymbolWriter.cs: Remove all the unused interfaces.
+
+2002-09-20 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs: Set version number to 23, include the size
+ of a variable.
+
+2002-09-20 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs: Set version number to 22. Provide information
+ about parameters and local variables.
+
+2002-09-20 Martin Baulig <martin@gnome.org>
+
+ * IMonoSymbolWriter.cs: Use fullly qualified name for
+ System.Diagnostics.SymbolStore.ISymbolWriter rather than `using' this
+ namespace. This allows us to use the name `ISymbolWriter' in our own
+ code.
+
+2002-09-18 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs: Set version number to 21. Encode the source file
+ as a 4-byte length field followed by the UTF8 encoded string.
+
+2002-09-18 Martin Baulig <martin@gnome.org>
+
+ * IMonoBinaryReader.cs: New interface.
+
+ * MonoSymbolTable.cs: Use IMonoBinaryReader instead of binary reader.
+
+2002-09-16 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs: Set version number to 20.
+
+2002-09-14 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolWriter.cs, IMonoSymbolWriter.cs, MonoSymbolTableWriter.cs:
+ Make all classes and interfaces which don't need to be public internal.
+
+2002-09-14 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs: Use only CLS-compliant types here, bumped version
+ number to 19.
+
+ * MonoSymbolTableReader.cs: Removed, this is now in the debugger.
+
+2002-09-03 Martin Baulig <martin@gnome.org>
+
+ * AssemblerWriterI386.cs, IAssemblerWriter.cs, MonoDwarfFileWriter.cs,
+ README, README.relocation-table, csharp-lang.[ch], gdb-csharp-support.patch,
+ gdb-variable-scopes.patch: Removed.
+
+2002-09-03 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTableReader.cs (MonoSymbolTableReader.ImageFile): New
+ public property.
+
+ * MonoSymbolTable.cs: Bumped version number to 18.
+
+2002-08-27 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs (MethodAddress): Removed `TrampolineAddress'.
+
+2002-08-27 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs: Changed the file format in a way that allows us
+ open it read-only and to use a specially malloced area for all the
+ dynamic data.
+
+2002-08-25 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTableReader.cs: New file. This is the reader for the
+ new symbol file format.
+
+2002-08-24 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolTable.cs, MonoSymbolTableWriter.cs: New files. This
+ creates a binary application.dbg file which will be used by the
+ JIT to display source lines for exceptions.
+
+ * list.unix: Disabled the dwarf file writer in the build.
+
+2002-08-23 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolWriter.cs (MonoSymbolWriter.Initialize): Added
+ assembly name argument. Since the symbol writer needs to read the
+ final assembly, we need to give it its full pathname.
+
+2002-08-23 Martin Baulig <martin@gnome.org>
+
+ * makefile.gnu, list.unix: Added.
+
+2002-07-05 Martin Baulig <martin@gnome.org>
+
+ * MonoDwarfFileWriter.cs: Added support for types in referenced assemblies.
+
+2002-07-05 Martin Baulig <martin@gnome.org>
+
+ * MonoDwarfFileWriter.cs: Added support for arrays.
+
+ * gdb-csharp-support.patch: Updated.
+
+2002-06-29 Martin Baulig <martin@gnome.org>
+
+ * MonoDwarfFileWriter.cs (DieInheritance): Make this actually work.
+
+2002-06-29 Martin Baulig <martin@gnome.org>
+
+ * MonoDwarfFileWriter.cs, MonoSymbolWriter.cs: Put all TAG_subprogram's into their
+ corresponding struct/class declarations.
+
+2002-06-28 Martin Baulig <martin@gnome.org>
+
+ * gdb-csharp-support.patch: Updated.
+
+2002-06-28 Martin Baulig <martin@gnome.org>
+
+ * MonoDwarfFileWriter.cs: Use a TAG_string_type when we're using GNU extensions.
+ Make static struct/class fields actually work. Provide a TAG_typedef for struct's
+ and classes.
+
+2002-05-30 Martin Baulig <martin@gnome.org>
+
+ * IMonoSymbolWriter (IMonoSymbolWriter): Added custom `Initialize' method.
+
+ * MonoSymbolWriter.cs (Initialize): The ISymbolWriter's `Initialize' method
+ is no longer supported and throws an exception.
+ (Initialize (string, string[])): New custom initialization function.
+
+ * MonoDwarfFileWriter.cs (DwarfFileWriter): Added `string[] args' argument
+ to the constructor to pass command line arguments.
+
+ * gdb-csharp-support.patch: Updated for GDB 5.2.
+
+2002-05-30 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now get's the
+ AssemblyBuilder's `methods' array as third argument.
+ (OpenMethod): Use this array to get the method builder rather than using an
+ interncall for it.
+ (get_method_builder): Removed this interncall.
+
+2002-05-25 Martin Baulig <martin@gnome.org>
+
+ * MonoDwarfFileWriter.cs: Finished the type rewrite, put back strings and arrays.
+
+2002-05-24 Martin Baulig <martin@gnome.org>
+
+ * IMonoSymbolWriter.cs (ISourceMethod): Added `FullName' and `Parameters'.
+ (ITypeHandle): New interface.
+
+ * DwarfFileWriter.cs: Largely reorganized the type writing code. Types are
+ now represented by ITypeHandle objects which are stored in a per-dwarf-writer
+ hash table. At the moment, all types still need to be in one compile unit due
+ to lacking support in gdb - but this new type code here already supports this.
+
+ * MonoSymbolWriter.cs: Moved all the subclasses to the top-level and made them
+ public, cleaned up the code, put everything into one compile unit.
+ (DefineLocalVariable): Added a version of this function which takes useful args.
+
+2002-05-22 Martin Baulig <martin@gnome.org>
+
+ * IMonoSymbolWriter.cs (IMonoSymbolWriter): Added `Sources' and `Methods'
+ properties.
+
+ * MonoDwarfFileWriter.cs (WriteSymbolTable): New public method. Moved the
+ code that writes the "mono_line_numbers" section here from the LineNumberEngine.
+
+2002-05-22 Martin Baulig <martin@gnome.org>
+
+ * IMonoSymbolWriter.cs (IVariable): Replaced Token with `ISourceMethod Method'.
+
+ * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now has an additional
+ ModuleBuilder argument.
+ (OpenMethod): Immediately call the `get_method' interncall to get the MethodBase
+ from the token, then store the MethodBase instead of the token. The token may
+ still change during the metadata library's fixup process.
+ (DoFixups): When the image has been written to disk, call the GetToken () method
+ on all MethodBuilders and all ConstructorBuilders to get the final metadata tokens.
+
+2002-05-22 Martin Baulig <martin@gnome.org>
+
+ * AssemblerWriterI386.cs: Don't use GNU extensions and produce assembler
+ output which is free of comments and extra whitespaces so that it's suitable
+ for `as -f'.
+
+2002-05-22 Martin Baulig <martin@gnome.org>
+
+ * IMonoSymbolWriter.cs (ISourceMethod): Replaced `MethodInfo MethodInfo' with
+ `MethodBase MethodBase' and added `Type ReturnType'. We're now correctly
+ dealing with constructors and not crashing anymore.
+
+2002-05-21 Martin Baulig <martin@gnome.org>
+
+ * MonoDwarfFileWriter.cs: Write a special line number table which can be read
+ in by the metadata library to get line number information in backtraces.
+
+2002-05-06 Martin Baulig <martin@gnome.org>
+
+ * MonoSymbolWriter.cs (MonoSymbolWriter.Close): Use Assembly.LoadFrom (), not
+ AppDomain.Load () to load the assembly.
+
2002-04-26 Martin Baulig <martin@gnome.org>
* gdb-csharp-support.patch: A patch for GDB (against the latest CVS version)