Граф коммитов

814 Коммитов

Автор SHA1 Сообщение Дата
jfrijters 39b6ecfb4c Implemented shared class loader support. 2008-12-23 07:11:29 +00:00
jfrijters 94f4fe2ee2 Make ikvmc emit a warning whenever it emits code that throws a hard error. 2008-12-23 06:07:10 +00:00
jfrijters 1a98f51c37 Removed ResolverConfigurationImpl "native" methods that have been moved to Java side. 2008-12-23 05:33:40 +00:00
jfrijters d2e52953a0 Made two access checks runtime-only, because for the static compiler they aren't necessary and they break InternalsVisibleToAttribute support. 2008-12-22 07:54:25 +00:00
jfrijters 20cee82771 Don't load IKVM.Runtime.JNI.dll when "loading" a fake native library. 2008-12-22 07:34:37 +00:00
jfrijters e1658c03c4 Java allows public/protected members to expose package private classes, but when the caller isn't in the same assembly (or the assembly grants InternalsVisibleTo access to the caller) the CLR will disallow, so we have to support this scenario (currently by simply disallow the access at the Java level). 2008-12-22 05:52:49 +00:00
jfrijters 344924593f Fixed regression introduced in previous change the __<clinit> handling: In dynamic mode the MethodInfo that we're calling can't be an unfinished method, because DynamicMethod's ILGenerator can't handle that. 2008-12-01 05:26:28 +00:00
jfrijters 9991b38140 Always emit an explicit method override if we've mangled the name/sig, because we can't predict whether it will be needed or not (without keeping track of the mangling in the base classes) and the cost is minimal since this doesn't happen all that often. 2008-12-01 05:23:51 +00:00
jfrijters 2e6feb0089 Miranda method should use mangled name (if the name is mangled). 2008-12-01 05:21:05 +00:00
jfrijters 4c68432767 If the last call site of a subroutine wasn't reachable, the return switch would fall through potentially causing the code to be unverifiable. 2008-12-01 05:18:30 +00:00
jfrijters e2f8738bbc The check for unloadable types on the stack indexed the stack in the wrong order. 2008-12-01 05:16:30 +00:00
jfrijters c7b716d1b6 Added JniAssemblyInfo.cs. 2008-11-18 07:16:39 +00:00
jfrijters 7235538d3a Removed hard coded public key from JniInterface.cs. 2008-11-18 07:15:55 +00:00
jfrijters baf6228d28 Removed our version of System.Runtime.CompilerServices.ExtensionAttribute and instead add System.Core.jar to the compilation, this will allow us to reference the real ExtensionAttribute when it is available and yet the build will still work (albeit with a warning and without the ExtensionAttribute) when it is not available (i.e. when building on .NET 2.0). 2008-11-18 05:35:58 +00:00
jfrijters e62914f4a1 - Made java.lang.ClassLoader.loadClassInternal() accessible.
- Call ClassLoader.loadClassInternal() instead of ClassLoader.loadClass() to lock class loader object.
2008-11-18 05:25:06 +00:00
jfrijters 8ddf796565 Changed proxy stub name mangling to work around ildasm bug. 2008-11-17 07:17:31 +00:00
jfrijters dc2c86da39 Fixed pointer detection to work for types with multiple indirection levels. 2008-11-17 06:15:16 +00:00
jfrijters faffcc628c Integrated IKVM.Reflection.Emit in ikvmc. 2008-11-14 08:42:07 +00:00
jfrijters 464553f841 Restructured handling of finalize() method a little, to prepare for IKVM.Reflection.Emit. 2008-11-14 08:37:22 +00:00
jfrijters 93fc80927d Fix bug in handling of jsr instruction. 2008-11-14 07:54:11 +00:00
jfrijters 19f5c9cd08 finalize() and clone() should be final in cli.System.Object and cli.System.Exception. 2008-11-03 07:02:29 +00:00
jfrijters 02e63d6456 Moved .NEt 2.0 SP1 specific constructor invocation into a separate method, to avoid getting a MissingMethodException on .NET 2.0. 2008-11-03 06:59:59 +00:00
jfrijters bd46f993fc Hide nested types generated for callerID support. 2008-11-03 06:48:05 +00:00
jfrijters ae3172cde1 Re-introduced workaround for .NET JIT bug that causes .cctor not to run when a DynamicMethod invokes a method or gets/sets a field. 2008-09-25 05:17:21 +00:00
jfrijters f6628fce21 Removed hardcoded ikvm PublicKey from build. 2008-09-21 09:53:06 +00:00
jfrijters 40113d0b5b Added support for detecting "access" bridge methods and not hide them. 2008-09-21 09:50:41 +00:00
jfrijters 5cd8a0b5b9 Moved sound factory methods to runtime, to allow for easier experimentation with a sound implementation. 2008-09-21 09:45:00 +00:00
jfrijters ef06673e2d Fixed float/double array (de)serialization endianness. 2008-09-02 04:56:19 +00:00
jfrijters 2381194072 Removed the usage of .NET reflection. 2008-09-01 05:19:04 +00:00
jfrijters 490f744678 Moved all creations of DynamicMethod to util method that uniformly handles the fallback to the new .NET 2.0 SP1 constructor that support partial trust. 2008-09-01 04:01:36 +00:00
jfrijters 590cccc8d2 - Fixed VFS root directory entry.
- Removed no longer needed VM.isBooted() check (VM.isBooted() always returns true now on IKVM).
2008-08-28 06:51:31 +00:00
jfrijters bb94260c11 Switched from obsolete ConfigurationSettings.AppSettings to new ConfigurationManager.AppSettings. 2008-08-28 06:50:16 +00:00
jfrijters d439d5b1f4 Removed GNU Classpath specific code that I missed. 2008-08-25 05:12:08 +00:00
jfrijters 0f9117126a Removed class init workaround that is no longer required since .NET 2.0 SP1. 2008-08-25 04:51:06 +00:00
jfrijters aaefc51c9b Removed last parts of old-style reflection. 2008-08-25 04:16:59 +00:00
jfrijters 99d296d322 - Removed "slow" reflection.
- Removed MethodWrapper.Invoke().
- Removed FieldWrapper.GetValue()/SetValue().
- Added ICustomInvoke for the few MethodWrappers that still require custom reflection invocation.
2008-08-21 06:53:48 +00:00
jfrijters 6bce58f1bc Changed JNI reflection to be based on Java reflection (where possible). 2008-08-21 06:40:22 +00:00
jfrijters 316dd359eb Use .NET reflection instead of soon to be removed MethodWrapper.Invoke(). 2008-08-21 06:16:40 +00:00
jfrijters fc6134bb84 Changed dynamic (for unloadable classes) bytecode handling to use Java reflection. 2008-08-21 06:09:33 +00:00
jfrijters 634e5058b6 Bug fix: dynamic (for unloadable classes) getfield/getstatic/invoke* bytecode compilation couldn't handle ghost types. 2008-08-21 06:06:17 +00:00
jfrijters b91bce8821 Added helper methods to no longer require reflection to instantiate DirectByteBuffer from JNI. 2008-08-21 06:05:24 +00:00
jfrijters 684cdf651e Generified all collections. 2008-08-15 12:01:06 +00:00
jfrijters e83a33bc99 Removed unused per-type class caching. 2008-08-15 06:27:12 +00:00
jfrijters 23a3550851 Eleminated some (CompilerClassLoader) downcasts by making the type of the DynamicTypeWrapper.classLoader field depend on whether we're compiling the runtime or ikvmc. 2008-08-14 07:52:27 +00:00
jfrijters 21c028191c Moved generated exception mapping code from ExceptionHelper to Throwable and made it slightly less hacky. 2008-08-14 06:51:32 +00:00
jfrijters a8d63a772c Replaced usage of BootstrapClassLoader with actual class loader in static compiler. 2008-08-14 05:42:43 +00:00
jfrijters 5617a219c6 Don't generated nested type when the outer type is in a different class loader (this can now happen with ikvmc's multi target support). 2008-08-14 05:40:40 +00:00
jfrijters 72b109c924 Removed our own tracking of LocalBuilders, because on .NET 2.0 LocalBuilder has a LocalIndex property. 2008-08-13 13:05:43 +00:00
jfrijters a9e9235f3b DynamicMethod support isn't needed in ikvmc. 2008-08-12 14:57:04 +00:00
jfrijters b024380b15 ResolveField() is not needed in ikvmc. 2008-08-12 14:51:14 +00:00
jfrijters 0ddb43d120 Replaced explicit usage of System.Reflection.Emit types with "using System.Reflection.Emit;" to make switching to Cecil easier. 2008-08-12 14:45:23 +00:00
jfrijters 0aa5eb9895 Oops. Previously forgot to add this file. 2008-08-12 09:18:12 +00:00
jfrijters b34cc1414c Removed files that are no longer needed no that GNU Classpath support has been dropped. 2008-08-06 12:51:07 +00:00
jfrijters 16a65985af Removed support for building with GNU Classpath class library. 2008-08-06 12:22:06 +00:00
jfrijters 93eaefc31a - Removed Mono workarounds that are no longer needed with Mono 2.0
- Fixed ikvmc build error introduced in previous patch.
2008-08-06 05:48:52 +00:00
jfrijters 379dd8bee3 - Added ghost array tagging to be able to report the instantiated class (instead of object[] which is allocated instead).
- Fixed ldc <class> where <class> is a ghost array.
- Fixed bug in instanceof <class> where <class> is a Serializable[].
2008-08-06 05:25:18 +00:00
jfrijters 05cbf17945 Jar meta entries are case insensitive. 2008-07-04 05:40:54 +00:00
jfrijters 96ed24e4ef Fix for bug #2006953. 2008-07-02 06:22:21 +00:00
jfrijters a03de46810 Don't generate unneeded GC.KeepAlive() in constructor for Exception types that don't have a finalize() method. 2008-06-24 14:47:45 +00:00
jfrijters 020e428000 Fixed regression. Made TypeWrapper.IsGhostArray safe to call on Unloadable types. 2008-06-18 10:23:37 +00:00
jfrijters 8b7b320f15 Fixed bug introduced by CallerID support. 2008-06-13 07:52:55 +00:00
jfrijters 909d78b0f7 - Renamed ClassLoader.NIL_CLASSLOADER to ClassLoader.DUMMY.
- Removed unused ClassLoader.registerNatives().
- Removed unnecessary field initializers in ClassLoader.
- Moved necessary field initializers in ClassLoader to constructor.
- Changed Thread to make use of ClassLoader.DUMMY, instead of having an extra field to keep track of contextClassLoader status.
2008-06-04 05:12:46 +00:00
jfrijters b1b3f8b4f5 - Renamed CountingILGenerator to CodeEmitter.
- Renamed CountingLabel to CodeEmitterLabel.
2008-06-03 12:10:07 +00:00
jfrijters 36aa7b1a6c Removed CodeEmitter abstract base class. 2008-06-03 09:17:31 +00:00
jfrijters cbeeb20318 Marked all static classes as static. 2008-06-03 07:13:49 +00:00
jfrijters c5dcd8dc53 Refactored finish state/methods from JavaTypeImpl into FinishContext. 2008-06-03 06:52:30 +00:00
jfrijters 7ee8a8b83b Renamed invokespecial stub to follow the common convention for not-visible-from-java members. 2008-06-02 06:28:29 +00:00
jfrijters f41a42949c - Renamed ClassFile.HasCallerID to distinguish it from MethodWrapper.HasCallerID.
- Added check to only recognize HasCallerID annotation in core library.
- Changed other locations that incorrectly used ClassFile.HasCallerID to use MethodWrapper.CallerID.
2008-06-02 06:20:29 +00:00
jfrijters 8c73f6947e Added optimization to omit callerid nested type inside core library. 2008-06-02 04:04:39 +00:00
jfrijters 5e4182edb5 - Implemented CallerID infrastructure.
- Marked various methods with HasCallerID annotation.
- Rewrote some methods to explicitly use CallerID.
2008-05-31 15:20:29 +00:00
jfrijters aa0bdc2280 Pass caller method instead of type to intrinsic infrastructure. 2008-05-31 10:22:37 +00:00
jfrijters 4835307e5e Removed asserts that no longer work since we're now security transparent. 2008-05-31 10:08:10 +00:00
jfrijters 84191f9c40 made classes static. 2008-05-31 10:00:29 +00:00
jfrijters 018eaf5acb Restructured code to remove (mcs) compiler warnings. 2008-05-20 07:43:42 +00:00
jfrijters 9c2dfec3c5 Added workarounds for mcs compiler bug (related to the mutual dependency of the runtime and class library assemblies). 2008-05-20 07:36:50 +00:00
jfrijters f2966d679c Added noconfig="true" to csc to prevent gmcs from sucking in reference to System.Core.dll (and thus complaining about our version of ExtensionAttribute). 2008-05-20 07:15:37 +00:00
jfrijters c4eb9596af - Use new more efficient float/double to/from int/long bits converters.
- Forward IOHelper.WriteDouble/WriteFloat to java.io.Bits to remove the need to worry about normalizing NaNs or not.
2008-05-09 05:59:59 +00:00
jfrijters 29f84a8850 - added more efficient float/double to/from int/long bits converters
- made Double.doubleToRawLongBits/longBitsToDouble and Float.floatToRawIntBits/intBitsToFloat intrinsics
- generalized the intrinsics support
2008-05-09 05:57:55 +00:00
jfrijters 191d045da4 Fix deserialization of double arrays. 2008-05-03 19:00:32 +00:00
jfrijters 1b027efce3 Moved java.lang.Thread "native" methods to Java. 2008-04-25 04:48:57 +00:00
jfrijters 7609085114 Forgot to cast result from GetClassFromTypeHandle to java.lang.Class. 2008-04-25 04:45:52 +00:00
jfrijters ec2228d04a Moved System.nanoTime() to Java. 2008-04-24 06:22:49 +00:00
jfrijters 7d472777de Moved a couple of java.lang.System native methods to the Java side. 2008-04-23 05:24:35 +00:00
jfrijters 6a1c4cea55 Use new .NET 2.0 API to get processor count. 2008-04-23 05:22:31 +00:00
jfrijters cd2ab36b74 Refactored class library initialization. 2008-04-23 04:25:21 +00:00
jfrijters e28c60d9a4 Added hack to support instantiating fake enums for types loaded in ReflectionOnly (to support custom attribute annotations that have enum values in ikvmstub). 2008-04-22 06:50:22 +00:00
jfrijters cb06062f15 Take advantage of the fact that we now have a real type to refer to, instead of doing the class lookup by name. 2008-04-22 06:48:30 +00:00
jfrijters 2c35fdd246 Moved "fake" type handling to the proper place. 2008-04-22 06:24:55 +00:00
jfrijters 1d1b043269 Fixed name mangling bug. Dots in nested type names should be mangled, because they shouldn't affect the package name. 2008-04-21 08:19:20 +00:00
jfrijters 23413c175e Added assembly location to verbose class cast exception if the assembly fullnames matches but the locations don't. 2008-04-21 04:27:59 +00:00
jfrijters 90caa038dd Added support for turning Java fields into .NET properties with an annotation. 2008-04-14 05:13:41 +00:00
jfrijters 2bbb4bc9cb Added support for filenames/paths with colons in them (on Win32) to Win32FileSystem.Canonicalize(). 2008-04-14 05:09:38 +00:00
jfrijters 7b24fc61d8 Fixed mapLibraryName to use platform detection instead of os.name property. 2008-04-07 04:30:04 +00:00
jfrijters 33e105654f Restored the special case for interface .cctor methods to fix bug #1930303 2008-04-01 17:39:07 +00:00
jfrijters 2d8516956b Made __Fields nested class abstract (it was already sealed) and removed the constructor. 2008-04-01 17:36:04 +00:00
jfrijters 36593f183b Set Thread context class loader for threads started from .NET. 2008-03-14 09:17:08 +00:00
jfrijters 12c8d2c307 Filter out HideFromReflection members. 2008-03-14 09:16:31 +00:00
jfrijters e5808c1188 Handle stack frames that contain methods in primitive types. 2008-03-14 09:15:55 +00:00
jfrijters e44a87fed7 Ignore codebase for dynamic assemblies. 2008-03-14 09:15:08 +00:00
jfrijters c428023090 Restructured code to remove compiler warnings. 2008-03-14 09:12:50 +00:00
jfrijters 74c64c8454 Use custom modifiers to make sure constructor signature is unique (if necessary). 2008-03-04 07:28:00 +00:00
jfrijters ca51feb27f Added support for defining unloadable (i.e. missing) types to use as custom modifiers in signatures. 2008-03-04 07:25:36 +00:00
jfrijters c591de8029 Ripped out annotation/constant pool support that is no longer needed. 2008-03-03 08:28:22 +00:00
jfrijters 53321c6fe9 Changed System.nanoTime() implementation to use Stopwatch.GetTimestamp(). 2008-03-03 07:27:38 +00:00
jfrijters 828a4de95d Replaced notion of DynamicOnly types with Fake types. Fake types are implemented as generic type instances and can have DynamicOnly methods. 2008-03-03 07:05:19 +00:00
jfrijters 68e4e912ab - Simplified annotation handling.
- Added support to Class.forName() for assembly qualified Java type names.
2008-02-29 08:03:09 +00:00
jfrijters 3460403e1f Hide ikvmc generated GetEnumerator() method from Java. 2008-02-29 08:01:34 +00:00
jfrijters 85ff0c380a - Reintroduced guard against recursive FinishCore invocations.
- Implemented support for annotations on .NET fields/methods/parameters.
2008-02-29 07:08:04 +00:00
jfrijters 5da414d650 Initialize class library in JVM_CreateJavaVM. 2008-02-29 07:06:07 +00:00
jfrijters d04c813e3f - Added -removeassertions optimization option to ikvmc.
- Added -removeassertions to IKVM.OpenJDK.ClassLibrary.dll build.
- Don't look at unreachable instructions when determining if a method needs a line number table.
2008-02-27 09:04:19 +00:00
jfrijters 95ce4405cd - Forked Class, Constructor and Field.
- Made class annotation handling lazy and bypass encode/decode.
2008-02-19 16:52:53 +00:00
jfrijters aa715b2fac Fixed regression in return value annotation value. 2008-02-19 09:44:40 +00:00
jfrijters a69bb1e802 Construct custom attribute annotation proxies directly instead of going through the trouble to encode/decode them. 2008-02-17 11:33:03 +00:00
jfrijters f238214cfa - Optimized codegen for lcmp, fcmp<x>, dcmp<x> and shift opcodes.
- Moved temp local handling to CodeEmitter.
2008-02-15 15:32:51 +00:00
jfrijters 71870de395 Made ExtensionAttribute public during first-pass compilation, otherwise ikvmc won't see it. 2008-02-15 15:20:14 +00:00
jfrijters b5c5f18679 - Added support for defining extension methods in the core class library assembly (without taking a System.Core.dll dependency).
- Added the first two extension methods.
2008-02-10 11:20:52 +00:00
jfrijters c74b70d904 - Don't instantiate DotNetTypeWrapper before knowing it's the right one.
- Reuse name instead of recomputing it in the DotNetTypeWrapper constructor.
2008-02-10 09:05:53 +00:00
jfrijters fe81227fee Reintroduced baked TypeBuilder scrubbing hack for .NET 2.0 SP1. 2008-02-10 08:45:27 +00:00
jfrijters c5ca5009ae - Use assembly qualified type names in annotation parameters when referencing a class.
- Renamed GetEnumerator method in implicit IEnumerable implementation to work around lame bug in Xml serialization.
2008-02-09 17:37:38 +00:00
jfrijters 1c3e9561fe Handle converting forms of fstore/dstore to prevent Debug.Assert from firing. 2008-02-09 17:35:30 +00:00
jfrijters 957904c9a2 Box/unbox ghost references when (de)serializing. 2008-02-09 17:34:50 +00:00
jfrijters abdba87542 - Moved common assembly attributes to single file (CommonAssemblyInfo.cs).
- Added IKVM.Runtime.JNI project to Visual Studio solution.
- Added atomic.cs to Visual Studio projects.
- Added SecurityCritical and AllowPartiallyTrustedCallers attributes to IKVM.Runtime.dll.
2008-01-03 09:45:49 +00:00
jfrijters 0b07059d24 Fixed JNI regression in ikvmc. 2008-01-03 09:42:14 +00:00
jfrijters 6fff8e1ac0 Partial Trust fixes:
- Added accessor methods for "slot" to Method & Constructor.
- Implemented System.setIn0, setOut0, setErr0 in map.xml.
- Hacked sun.misc.SharedSecrets to replace Unsafe.ensureClassInitialize() with direct calls.
- Replaced java.nio.Bits.byteOrder() with simple System.BitConver.IsLittleEndian based implementation.
- Disabled DynamicMethodSupport when running in partial trust.
- Ignore SecurityException in CanonicalizePath.
- Don't trigger load of JNI assembly when "loading" a fake system library.
2007-12-28 14:55:33 +00:00
jfrijters 1ec1db7cc7 Stupid fix. 2007-12-28 14:36:51 +00:00
jfrijters 357555cb59 Indirectly refer to JNI assembly. 2007-12-28 14:36:30 +00:00
jfrijters 70aa740f1c Intrinsified AtomicReferenceFieldUpdater.newUpdater(). 2007-12-28 10:23:46 +00:00
jfrijters 83e77754db Added support for registering a delegate that gets called after the type is baked. 2007-12-28 10:22:06 +00:00
jfrijters c25f154eae Generic type instances can't be inner classes. 2007-12-27 15:41:43 +00:00
jfrijters e2c7ceb1d5 - Moved some calls to methods with a LinkDemand (that fails in partial trust) to a separate methods.
- Added stuff to map.xml to remove the need for reflection in VM / Library bootstrap.
- Inverted IKVM.Runtime.JNI dependency in stack walking code.
2007-12-27 15:16:49 +00:00
jfrijters 29b48a5948 Ignore SecurityException when running in partial trust. 2007-12-27 15:13:34 +00:00
jfrijters 426ded09ff - Changed <clinit> method to SmartConstructorMethodWrapper to support calling it in map.xml
- Removed call to unnecessary call to MatchTypes (to support partial trust)
2007-12-27 15:08:05 +00:00
jfrijters 6cd0a9e34b Restructured VM <-> Library interface to take advantage of InternalsVisibleTo to remove public methods and reflection usage. 2007-12-19 11:28:09 +00:00
jfrijters 160d93fc1f Made all "native" method classes internal. 2007-12-18 11:05:30 +00:00
jfrijters 5e0dd0f7f9 Made classes static. 2007-12-18 11:04:53 +00:00
jfrijters f9e7cd31f5 Moved JNI implementation into a separate assembly (IKVM.Runtime.JNI.dll) to make IKVM.Runtime.dll verifiable. 2007-12-18 09:56:11 +00:00
jfrijters 6df053187c Implemented support for InternalsVisibleToAttribute. 2007-12-17 10:59:02 +00:00
jfrijters a7d6edbc5a Implemented native methods of java.io.Console. 2007-12-17 07:44:59 +00:00
jfrijters 6da894bcd5 Removed mono workarounds. 2007-12-17 07:43:06 +00:00
jfrijters 9b22fbf1d1 Workaround the fact that Mono doesn't currently implement FieldInfo.GetRawConstantValue(). 2007-12-04 08:10:53 +00:00
jfrijters 5a70141ffe Added explicit reference to System.Configuration.dll as required by mcs. 2007-12-04 08:09:53 +00:00
jfrijters d118006a7f Don't create DynamicMethod with bogus arg in signature. 2007-12-04 08:08:33 +00:00
jfrijters d6e2cf70f7 Removed more .NET 1.1 workarounds. 2007-11-26 16:00:15 +00:00
jfrijters 9e7cc69997 Oops. Changed vfs.zip path back to resource. 2007-11-26 15:20:10 +00:00
jfrijters 61ccfb3ced - Improved VFS.
- Dynamically generate "lib/security/cacerts" from .NET X509 store.
2007-11-26 15:19:08 +00:00
jfrijters 6bb8fa27d1 - Regenerated mscorlib.jar for .NET 2.0
- Updated FileChannelImpl to use SafeFileHandle and GC.Add|RemoveMemoryPressure
- Added GC.KeepAlive to "native" methods of MappedByteBuffer
2007-11-26 12:51:21 +00:00
jfrijters 7ca97a7541 More .NET 1.1 -> 2.0 work. 2007-11-26 11:01:29 +00:00
jfrijters ab95ffee45 More .NET 1.1 -> 2.0 work. 2007-11-26 09:01:35 +00:00
jfrijters 3072c89696 - Removed .NET 1.1 specific code
- Removed conditional compilation of .NET 2.0 specific code
2007-11-26 08:38:38 +00:00
jfrijters 83c6e5105d - .NET 1.1 is no longer supported
- Removed .NET 2.0 warnings (except for the "unreachable code" ones)
2007-11-26 05:50:57 +00:00
jfrijters ba7a5a69bd - Removed Visual Studio 2003 solution/project files.
- Added Visual Studio 2008 solution.
2007-11-21 07:15:42 +00:00
jfrijters 6695ae96db - Fixed AotTypeWrapper.EmitCheckCast() for ghost arrays (which apparently isn't used in the current core library).
- Fixed TypeWrapper.EmitCheckCast() for ghost arrays to actually cast to an array type.
2007-11-06 08:54:52 +00:00
jfrijters 36ef70f507 Fix to make sure that a ghost interface method call always goes thru the target reference wrapping path. 2007-11-06 08:51:08 +00:00
jfrijters 03db85b160 Fixed GetterFieldWrapper to support the DynamicMethod based fast reflection on CompiledTypeWrapper fields that don't have a FieldInfo object. 2007-11-02 05:47:34 +00:00
jfrijters d280cd460b Fixed AppDomainAssemblyClassLoader to ignore AssemblyBuilders. 2007-11-02 05:11:47 +00:00
jfrijters 42f0aba28d - Did more work to keep up the pretense that an AssemblyClassLoader has already loaded all classes in the assembly.
- Restructured AssemblyClassLoader.GetProtectionDomain() to avoid calling any code while holding the lock.
2007-10-26 07:11:17 +00:00
jfrijters 470a31ab43 Enforce custom assembly class loader accessibility at runtime. 2007-10-26 05:14:36 +00:00
jfrijters 6e2d5abf5f Don't create the default system class loader if the main executable has a custom assembly class loader. 2007-10-25 16:49:30 +00:00
jfrijters f8dcc6ff6d Allow non-public custom assembly class loaders. 2007-10-25 12:57:40 +00:00
jfrijters 96094d6cee Made AssemblyClassLoader public and moved it to ikvm.runtime package. 2007-10-25 12:56:18 +00:00
jfrijters 79a5702779 Don't call custom assembly class loader for types that are defined in the assembly itself. 2007-10-25 06:28:26 +00:00
jfrijters 191dbcb00e Make "classpath" build target build again. 2007-10-24 04:24:12 +00:00
jfrijters 8a79587e64 Updated version numbers to 0.37. 2007-10-22 15:45:52 +00:00
jfrijters 13fff84a96 Fixed Class.getModifiers() to mask out ACC_SUPER bit. 2007-10-22 10:25:54 +00:00
jfrijters 8d1e02155e Added support for the fact that .NET generic type instances can now refer to dynamically loaded Java types. 2007-10-22 09:25:10 +00:00
jfrijters 895ad8516d Implemented two custom assembly class loaders. 2007-10-22 08:09:19 +00:00
jfrijters bc61248b9e Added check to prevent defineClass() on an assembly class loader from defining a class that already exists in the assembly. 2007-10-22 05:20:42 +00:00
jfrijters 2628d5ab4b Changed AssemblyClassLoader to be useable as a delegation parent for custom assembly class loaders. 2007-10-22 05:13:08 +00:00
jfrijters 61bc8af572 Added support for custom assembly class loaders. 2007-10-21 07:14:53 +00:00
jfrijters 2d2be52f29 Don't add resources in core assembly twice (happened if a .NET assembly explicitly referenced the core assembly). 2007-10-18 13:57:05 +00:00
jfrijters b4a7cb4d91 Refactored assembly class loading to be more like regular class loading and prepare for future custom assembly class loaders. 2007-10-18 13:54:11 +00:00
jfrijters a22f2e0ce1 Disable inlining of __<clinit> method to work around x64 JIT bug. 2007-10-12 08:52:08 +00:00
jfrijters 25e5f841bd Fix for bug #1802125. 2007-10-10 06:54:20 +00:00
jfrijters b08148de2b JLS binary compat fix. Public inner classes should not be nested inside non public types. 2007-10-10 05:31:57 +00:00
jfrijters 7a2ffb3019 Regression fix. When getting a static field value, we should convert the value from signature type to stack type (to make sure that non-primitive value types are boxed). 2007-10-10 05:30:04 +00:00
jfrijters 0fc40a8133 Explicitly run <clinit> when calling a static method thru reflection via a DynamicMethod, to work around the .NET 2.0 bug in DynamicMethod that causes it not to call the class constructor in this case. 2007-09-25 12:27:21 +00:00
jfrijters cd1a029440 Make sure that passed in reference arguments are of the correct type. 2007-09-25 06:12:59 +00:00
jfrijters abef13a3d9 Disabled the use of DynamicMethod when running on Mono, because as of Mono 1.2.5.1 its DynamicMethod implementation is too broken for us. 2007-09-25 04:44:28 +00:00
jfrijters d36bf2ea5a Fixed RunClassInit() for remapped types. 2007-09-24 13:06:30 +00:00
jfrijters d20ce68f75 Implemented optimized reflection/serialization when running on .NET 2.0 (by generating DynamicMethods instead of using .NET reflection). 2007-09-24 11:57:00 +00:00
jfrijters 69aada9320 Cache ReflectiveModifiers in CompiledTypeWrapper. AttributeHelper.GetInnerClass() is expensive and this property is called directly in response to Class.getModifiers(), so caching the modifiers results in a significant speedup of Class.getModifiers() which in turns speeds up Constructor.newInstance(). 2007-09-19 09:38:05 +00:00
jfrijters c11f7d3e8f Added extra checks to prevent critical failures when trying to extend or implement non-public base classes/interfaces in another assembly. 2007-09-17 10:15:17 +00:00
jfrijters f89e98b7ed Implemented assertions (OpenJDK only). 2007-09-12 06:51:37 +00:00
jfrijters 4d63ff9272 Don't include unused code in runtime build, to avoid warnings. 2007-09-12 06:47:48 +00:00
jfrijters 2bd4452024 Implemented support for creating proxies for non-public interfaces from ikvmc compiled assemblies. 2007-09-11 12:12:35 +00:00
jfrijters 63deb9d487 Handle types that aren't exposed to Java. 2007-09-11 12:06:21 +00:00
jfrijters c932cfad42 Made method annotation resolution lazy to support annotations that annotate themselves. 2007-09-10 06:16:49 +00:00
jfrijters 9fcf57e519 Fixed handling of finalize method to deal with scenarios where the base class isn't yet finished when the derived class' finalize method is linked. 2007-09-07 12:37:03 +00:00
jfrijters b76bd6edd0 Stub package accessible abstract methods in public classes to allow JLS binary compatibility across assembly boundaries. 2007-09-07 12:34:46 +00:00
jfrijters 4df0beb760 Improved handling of abstract methods that aren't implemented in non-abstract classes (JLS binary compatibility). 2007-09-07 12:32:29 +00:00
jfrijters 59cc098225 Add support for overriding package virtual methods that have a different vtable slot from the non-package virtual method that we're overriding. 2007-09-07 12:29:21 +00:00
jfrijters c811133672 Only public methods can implement missing interface methods. 2007-09-07 12:26:52 +00:00
jfrijters d0437c7ee9 Implemented 1.6 JNI changes. 2007-09-07 05:19:11 +00:00
jfrijters 4ddfd2b12d Enabled workaround for x64 tail call optimization in .NET 1.1 builds. 2007-08-29 06:23:47 +00:00
jfrijters 477adb3b33 Fixed code generator bug that could cause AbstractMethodError to be thrown when subclassing a .NET type that has an explicit interface method implementation. 2007-08-29 06:23:14 +00:00
jfrijters fff2c860d3 - Fixed path canonicalization not to throw exceptions that it shouldn't throw.
- Added workaround for .NET 1.1 Directory.Delete() bug.
2007-08-23 09:30:40 +00:00
jfrijters 902cd58a62 Renamed IKVM.Hybrid.GNU.Classpath.OpenJDK.dll to IKVM.OpenJDK.ClassLibrary.dll and made OpenJDK build the default. 2007-08-22 11:51:14 +00:00
jfrijters 567e70a44d Implemented sun.net.dns.ResolverConfigurationImpl "native" methods. 2007-08-22 11:49:58 +00:00
jfrijters b2e2c142f9 Added DnsAddresses and DnsSuffix properties. 2007-08-22 11:49:05 +00:00
jfrijters dfae737d84 Don't add KeepAlive to constructors of objects that don't have finalizers and extend cli.System.Object. 2007-08-22 11:48:20 +00:00
jfrijters 0b50e118e4 Moved VMSystemProperties.getVersion() "native" method to common.cs. 2007-08-22 11:47:22 +00:00
jfrijters b3c98c5ae0 Added support for StructLayoutAttribute annotations. 2007-08-21 07:22:05 +00:00
jfrijters 23f1449562 Implemented path canonicalization. 2007-08-21 07:16:36 +00:00
jfrijters 02558b63a4 Implemented Inet4Address.isReachable(). 2007-08-17 13:35:51 +00:00
jfrijters 53c2542cb5 Implemented Thread.WaitUntilLastJniThread() (used by JNI method DestroyJavaVM() to wait for all non-daemon threads to end). 2007-08-17 09:58:37 +00:00
jfrijters d5d1f1de1b - Implemented Thread.dumpThreads() and Thread.getThreads().
- Added a couple more fake native libraries to VFS.
2007-08-17 09:12:51 +00:00
jfrijters 3c6b7ac8db Added HideFromJava to AnnotationAttribute type member that can potentially use HideFromJava types. 2007-08-17 09:11:34 +00:00
jfrijters 14c840cfbd Refactored system properties initialization. 2007-08-16 14:04:59 +00:00
jfrijters 3d0a4c552a Integrated OpenJDK java.nio package. 2007-08-15 12:04:24 +00:00
jfrijters 8480d59274 Don't create TypeWrapper instances for HideFromJava types. 2007-08-14 12:08:39 +00:00
jfrijters dada58f826 Removed unused code. 2007-08-14 12:08:12 +00:00
jfrijters 85f0e03a43 - Fixed thread creation to use AccessController.doPrivileged() to get ikvm.apartmentstate system property.
- Fixed AccessController.getStackAccessControlContext() to use "native" method as marker on the stack for privileged operation (because the native method stub may get inlined away).
2007-08-10 13:04:21 +00:00
jfrijters 255c73356c Implemented improved floating point compliance. 2007-08-08 13:51:55 +00:00
jfrijters 353a628608 - Fixed java.lang.reflect.Array.set() to only unbox primitives when the array is a primitive array
- Fixed java.lang.reflect.Array.multiNewArray() to finish the array type before using it.
2007-08-08 12:52:33 +00:00
jfrijters 14647eaa16 Fixed ArrayTypeWrapper.Finish(). 2007-08-08 12:50:48 +00:00
jfrijters 81acadd97c - Added fake awt and rmi native libraries to vfs.
- Removed VMStackWalker dependency.
- Several bootstrap issue workarounds.
2007-08-07 07:44:42 +00:00
jfrijters 16b9ef52ea Removed unused code. 2007-08-07 07:42:42 +00:00
jfrijters 860429230e Remoed VMStackWalker dependency (from OpenJDK build) 2007-08-07 07:42:13 +00:00
jfrijters bba90debad Added support for generating access stubs in public interfaces that extend non-public interfaces. 2007-08-03 13:14:41 +00:00
jfrijters cfad6b55d4 Fixed compilation under Mono. 2007-08-01 07:34:36 +00:00
jfrijters 0607dbc8a2 Added method name clash handling for AOT access stub methods. 2007-07-31 15:27:22 +00:00
jfrijters 1ca8017429 Fixed NewObject to actually create an object of the requested class, instead of the class of the constructor. 2007-07-31 15:26:07 +00:00
jfrijters a5caf1ece0 Integrated OpenJDK javax.imageio package (excluding the jpeg support, because OpenJDK uses native code for that). 2007-07-31 06:14:32 +00:00
jfrijters f2d89c0051 - Fixed assembly annotation support (annotations are now applied, even though "assembly" type already exists in core library).
- Added ikvmc warning when annotation type isn't found.
2007-07-25 16:28:20 +00:00
jfrijters e688e083a7 Added .NET 1.1 implementation of the System.Net.NetworkInformation namespace. 2007-07-25 08:17:53 +00:00
jfrijters c05f8aba77 Remove usage of .NET 2.0 specific API when compiling for .NET 1.1. 2007-07-25 05:33:49 +00:00
jfrijters 3c0afc5d18 Implement java.net.NetworkInterface native methods (for .NET 2.0 builds only ATM). 2007-07-24 14:33:59 +00:00
jfrijters 9e71d1a851 Fixed Inet4AddressImpl.lookupAllHostAddr() to set the queried hostname on returned addresses. 2007-07-24 07:52:24 +00:00
jfrijters ca206e7eea Allow Object[] to be cast/assigned to ghost array. Fix for bug 1757889. 2007-07-22 04:45:22 +00:00
jfrijters faef699b6e Another attempt to fix race conditions in Thread.interrupt(). 2007-07-18 08:37:42 +00:00
jfrijters 027353d367 Clarified comment. 2007-07-18 07:30:38 +00:00
jfrijters 894e32c1b9 - Fixed openjdk.cs compilation error.
- Added OpenJDK derived PlainDatagramSocketImpl implementation.
- Added compilation stubs for jgss.
2007-07-12 14:09:51 +00:00
jfrijters a1ea963895 Fixed some FIRST_PASS compilation errors. 2007-07-12 08:46:25 +00:00
jfrijters 2b50089bcc - Added WINDOWS constant to ikvm.internal.Util to check if we're running on Windows.
- Added a bunch of native methods to openjdk.cs (some real implementations, some stubs)
- Added OpenJDK derived PlainSocketImpl/SocketInputStream/SocketOutputStream implementations.
- Added OpenJDK derived file protocol handler (a single class that supports both Windows and non-Windows)
2007-07-12 08:40:32 +00:00
jfrijters b4154227ea Implemented native methods of OpenJDK's java.security.AccessController (not yet integrated). 2007-07-11 07:11:35 +00:00
jfrijters 619c89079f Added support for "loading" fake native libraries from VFS and removed hack to bypass loadLibrary() call in System.initializeSystemClass(). 2007-07-05 11:53:06 +00:00
jfrijters 9de8f80b31 - Added workaround for .NET 1.1 reflection bug (methods that explicitly override a method are returned twice)
- Removed duplicate method workaround from stub generator.
2007-07-04 12:19:49 +00:00
jfrijters 8281c28bc0 "Implemented" ClassLoader.retrieveDirectives() by returning empty AssertionStatusDirectives object. Enabling assertions on the ikvm.exe command line is still not implemented. 2007-07-04 09:18:19 +00:00
jfrijters 3c9e581189 - Fixed latestUserDefinedLoader() to ignore mscorlib.
- Added support to VFS for the VFS root directory.
- Fixed FieldAccessorImpl to check the type of the object passed in.
2007-07-02 07:11:48 +00:00
jfrijters 7540ffd915 Changed VFS ZipEntryStream.Read() to always try to read the requested number of bytes, instead of returning earlier. For maximum compatibility with real file i/o. 2007-06-29 11:57:55 +00:00
jfrijters bd4ed8edb5 Added lib/logging.properties to VFS and implemented an additional VFS operation required for reading it. 2007-06-29 08:59:50 +00:00
jfrijters 506e7a6584 - Implemented java.util.concurrent.locks.LockSupport.
- Fixed race condition in Thread.interrupt() that could cause cli.System.Threading.ThreadInterruptedException to be thrown from interruptable waits/sleep.
2007-06-28 14:00:10 +00:00
jfrijters a216330810 Restructured handling of fields defined in map.xml to enable referencing them from map.xml method bodies. 2007-06-28 10:32:50 +00:00
jfrijters 8ce09b38bc Implemented the beginnings of a virtual file system for the java.home directory. 2007-06-27 06:14:54 +00:00
jfrijters edfb950ef4 Made the IsUnix test more efficient. 2007-06-27 06:13:40 +00:00
jfrijters c667a3b096 Integrated OpenJDK's java.rmi package. 2007-06-22 09:51:42 +00:00
jfrijters d0a464fc30 *** empty log message *** 2007-06-22 07:02:22 +00:00
jfrijters e710375809 Switched Visual Studio project to hybrid build. 2007-06-22 07:00:56 +00:00
jfrijters 5c270a27d2 Integrated OpenJDK's java.util.logging and java.util.spi packages. 2007-06-22 05:53:47 +00:00
jfrijters 8adc166579 Made LVT handling more robust against bogus entries. 2007-06-21 12:04:27 +00:00