Changed build infrastructure to support targetting .NET 4.0 on systems where 4.5 is installed.
Ported MSBuild task to .NET 2.0 and included the project in the VS solution.
- compile classes to obj\classes\[configuration]
- generate rt.jar (if necessary) in obj\stubs and let javac use that instead of having the runtime dynamically create the stubs
- set javac -g option when doing a debug build
Generate stubs for referenced assemblies and pass them to javac -classpath option.
Bug fix. Don't deadlock AppDomain.ProcessExit event handler when the event gets called from another thread than the one initiating exit.
Only register the AppDomain.ProcessExit event handler when necessary.
Added caching for Type.__ContainsMissingType property to simplify the prevention of infinite recursion while evaluating generic parameter constraints.
- Implemented __ContainsMissingType for function pointer types.
- Changed __ContainsMissingType to take custom modifiers into account.
Fixed TypeFlags encoding of ContainsMissingType to use only two bits.
Bug fix. Private methods declared in map.xml should not be made virtual.
- Support "attributes" attribute on method tag in map.xml for methods declared in remapped types.
- Recognize methods in remapped types with the "__<" name prefix as HideFromJava.
Removed meaningless "modifiers" attribute on methods where we're just replacing the method body.
Bug fix. Static compiler should not use proxy stubs to implement non-public interfaces in another assembly (because this situation can only arise when compiling the assemblies together and the InternalsVisibileToAttribute will be used and proxy stubs are not understood by CompiledTypeWrapper, so they can only be used in dynamic mode).
- Expose .NET resources in non-Java assemblies as Java resources.
- Add custom attribute to expose .NET resource under a different name.
Added UniverseOptions.ResolveMissingMembers and deprecated EnableMissingMemberResolution().
- Bug fix. Deduplicate messages based on all parameter values, not just the first one.
- Allow messages to be suppressed based on any number of parameter values.
- Write fully specific -nowarn options to suppress file.
Pass around Module as context, instead of Assembly.
Changed type name parser to use Module as context, instead of Assembly.
Added Universe.ResolvedMissingMember event.
Enabled resolving missing members and added a warning for missing types.