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