jfrijters
0743299862
Handle case were there is no user class loader.
2009-04-06 05:23:04 +00:00
jfrijters
f00d50ed0f
Workaround for https://bugzilla.novell.com/show_bug.cgi?id=486307
2009-03-18 08:56:15 +00:00
jfrijters
fbf4d5167a
Rewrote exception handling to store Java exception state in our java.lang.Throwable class, instead of an additional object in a weak keyed map.
2009-03-16 05:50:59 +00:00
jfrijters
7ed63e8d01
Added (limited) support for defining instance fields on remapped types. The fields will only be available on the actual implementation types, not the types they shadow (accessing the field on a shadow instance is undefined, but for reflection we'll at least guarantee that an exception is thrown (current java.lang.IllegalArgumentException)).
2009-03-16 05:28:11 +00:00
jfrijters
546cc4fdba
Implemented native library unloading to support evil trick that com.sun.jna.Native$DeleteNativeLibrary uses (it uses reflection to call ClassLoader$NativeLibrary.finalize() to force the native library to be unloaded, even though the class loader isn't garbage collected.)
2009-03-09 09:01:36 +00:00
jfrijters
d4dc5a6479
Resolve ConstructorBuilder before invoking.
2009-03-08 06:21:14 +00:00
jfrijters
1157440aaa
Fixed TypeBuilder check.
2009-03-08 06:20:35 +00:00
jfrijters
629416833c
Delegate fixes.
2009-03-07 08:33:33 +00:00
jfrijters
f780844c1c
Fixed regression introduced in 0.38 that caused LinkageError to be thrown instead of ClassCircularyError.
2009-03-07 08:11:28 +00:00
jfrijters
14a67e3bb4
- Added virtual method to MethodWrapper to do custom linking (i.e. defining the method).
...
- Added the notion of Java methods that don't have a corresponding CLR method (currently only for delegate constructors).
2009-03-06 06:43:40 +00:00
jfrijters
dd73250d49
Added support for defining delegates in Java.
2009-03-06 05:33:08 +00:00
jfrijters
4464f2e374
Fix. If we don't run the class initializer, we shouldn't still report its presence.
2009-03-04 13:52:05 +00:00
jfrijters
729e27537b
Fixed first-pass compilation.
2009-03-04 10:57:42 +00:00
jfrijters
00908792ae
Switched java.awt.event package from GNU Classpath to OpenJDK.
2009-03-04 08:18:36 +00:00
jfrijters
0f04e782c6
Added hack to skip running the static initializer when computing the serialVersionUID when running in ikvmstub.
2009-03-04 06:49:16 +00:00
jfrijters
3ebf554517
Implemented ikvm.internal.ClassLiteral<T> to allow for more efficient class literals.
2009-03-04 05:47:18 +00:00
jfrijters
e417a92a37
- Moved class literal TypeWrapper -> Type step into expression emitter.
...
- Fixed Class.desiredAssertionStatus() instrinsic to use the RemoveAsserts flag from the right class loader.
2009-03-02 06:31:55 +00:00
jfrijters
f4991c7bd4
Made Mono compilation workarounds conditional on __MonoCS__.
2009-03-02 06:30:13 +00:00
jfrijters
05d0c7a5c6
Fixed bug introduced in recent changes. When the first entry on the stack contains a partial expression, it cannot be popped.
2009-03-02 04:52:05 +00:00
jfrijters
f7f3ad1c6c
Added hack to fail fast if we encounter (a particular kind of) corrupt assembly generated by some obfuscator.
2009-03-02 04:51:05 +00:00
jfrijters
f80fc0203a
Disable compiler warning.
2009-02-27 06:43:00 +00:00
jfrijters
536a99cc98
Made the reading of the ikvm.exports resource lazy.
2009-02-27 06:33:19 +00:00
jfrijters
7a9aa4d619
It turns out that constructing an AssemblyName is very expensive, so we simply use the string names.
2009-02-27 06:28:50 +00:00
jfrijters
4291ce372d
- Added support for multi level stack tracking to CodeEmitter.
...
- Made most Pop emitting lazy to enable optimizing them away (together with corresponding push).
- Made loading class literal lazy, to enable optimizing them away when they aren't used (e.g. because an atomic intrinsic).
- Made Class.desiredAssertionStatus() into an intrinsic, to be able to optimize it away when -removeassertions is used.
2009-02-27 06:17:06 +00:00
jfrijters
8224903a75
Added a helper method to invoke AccessController.doPrivileged() and pass in explicit CallerID.
2009-02-27 06:05:22 +00:00
jfrijters
830f9aedf0
Reverted previous optimization that I'm not sure about anymore. The startup overhead of using a ConcurrentHashMap here may be too great.
2009-02-27 05:57:35 +00:00
jfrijters
3bc4241221
Fixed first-pass compilation.
2009-02-27 05:56:22 +00:00
jfrijters
b54fbae544
Removed unnecessary field initialization and registerNative call.
2009-02-27 05:53:27 +00:00
jfrijters
7041ebc248
Added optimization to reflective instantiation to use Activator.CreateInstance() when that is almost as fast as our LCG based implementation (which has a far higher initial cost).
2009-02-25 05:02:35 +00:00
jfrijters
1bab941b8f
Workaround for apparent Mono (2.2 and 2.4 preview 2 tested) bug in Interlocked.Exchange. Doesn't repro in isolation (but I didn't try very hard).
2009-02-25 05:00:53 +00:00
jfrijters
e228cf5ed0
Added caching to speed up Object.getClass().
2009-02-24 06:11:54 +00:00
jfrijters
b1bae501cb
Added caching to GetWrapperFromDotNetType.
2009-02-24 06:11:17 +00:00
jfrijters
6fd6fc2f3b
Use double checked locking to avoid taking the lock in the common case when accessing TypeWrapper.ClassObject.
2009-02-24 04:42:20 +00:00
jfrijters
95c07f04c3
Added explicit null check (to avoid Type.GetTypeHandle form showing up in the stack trace) and don't do the optimization if we can't prove that either object isn't a ghost array.
2009-02-23 05:18:44 +00:00
jfrijters
1125b3ab54
Make sure we get the right Type.GetTypeHandle and RuntimeTypeHandle.get_Value methods and cache them.
2009-02-23 05:17:21 +00:00
jfrijters
8ffc7143ee
Intrisified two uses of Object.getClass().
2009-02-22 08:19:30 +00:00
jfrijters
9803e4805b
Use "ikvm.exports" map for "wildcard exports" (i.e. assemblies that are referenced and whose types are available thru the assembly class loader).
2009-02-19 08:12:05 +00:00
jfrijters
68577d6313
Removed JIT perf workaround that is no longer necessary as of .NET 2.0 SP2 (aka .NET 3.5 SP1).
2009-02-16 06:02:02 +00:00
jfrijters
e60dd1bff2
Made 32 bit floating point math more compatible by rounding to 32 bit after every operation.
2009-02-16 05:59:48 +00:00
jfrijters
843e78ccbe
Use JMath functions (where possible and necessary) instead of .NET Math functions.
2009-02-16 05:13:49 +00:00
jfrijters
c3f7d1f2a9
As of .NET 2.0 SP2 (aka .NET 3.5 SP1) the x86 JIT now properly aligns the stack when doing a conv.r8, so we can now use that instead of using our hack.
2009-02-12 07:59:17 +00:00
jfrijters
bb7966d7d6
Speed up stack walking.
2009-02-12 06:25:07 +00:00
jfrijters
37356690e2
First pass compilation fix.
2009-02-11 05:27:55 +00:00
jfrijters
070d268277
Added supported for redirecting Runtime.exec("java ...") to ikvm.exe.
2009-02-10 15:21:41 +00:00
jfrijters
007b01b8a4
Renamed AssemblyClassLoader.Assembly to MainAssembly.
2009-02-10 07:27:25 +00:00
jfrijters
288a3fddbd
Changed "InternalsVisibleTo" handling to be based on Assembly instead of class loader.
2009-02-10 07:24:30 +00:00
jfrijters
142e5e9726
Disable String.toCharArray() intrinsic, because it relies on globals.
2009-02-10 05:53:57 +00:00
jfrijters
a352b35486
Fixed incredibly lame bug. The Target of a reused WeakReferences wasn't set. This would cause ghost arrays to sometimes lose their type.
2009-02-05 13:53:57 +00:00
jfrijters
a9c13f45bc
Refactored assembly resource loading and added support for delegating to sharedclassloader assembly groups.
2009-02-05 07:00:59 +00:00
jfrijters
d829bde2e6
Cache assembly load failures (because the CLR binder also caches failures).
2009-02-05 06:44:30 +00:00
jfrijters
4700903ea8
Fixed AssemblyClassLoader.GetAssembly() to handle fake types.
2009-02-04 08:10:24 +00:00
jfrijters
5eebd6f17b
Added AssemblyClassLoader.GetAssembly(TypeWrapper) and changed most code that assumed that an AssemblyClassLoader represented a single assembly to use it.
2009-02-04 07:24:44 +00:00
jfrijters
77b20a1cb8
Renamed ClassLoadWrapper.GetType(string) to GetGenericTypeDefinition() to make clear what it is used for.
2009-02-04 07:10:59 +00:00
jfrijters
046fd5c3de
- Fixed tracer to only add a trace listener in executables. Bug #2533728 .
2009-02-04 07:03:30 +00:00
jfrijters
b33c19f438
Handle invokespecials that have been turned into errors in local variable analysis.
2009-02-04 06:52:53 +00:00
jfrijters
830613d14a
- Implemented GetEnclosingMethod for ReflectionOnly assemblies.
...
- Fixed pointer type check for method return types.
2009-02-04 06:51:40 +00:00
jfrijters
924307a099
Unloadable types in signatures are represented by Object, so they don't need to cause the member to be treated as inaccessible.
2009-02-04 06:50:22 +00:00
jfrijters
bee9956608
Workaround for Mono bug 467230.
2009-01-20 05:14:17 +00:00
jfrijters
be63d3d792
Workaround for Mono bug 467229.
2009-01-20 05:13:49 +00:00
jfrijters
59d5957edc
Removed method that is no longer used.
2009-01-17 11:05:28 +00:00
jfrijters
f6477c70b6
Fixed CallerID method detection to work correctly for core library classes that aren't in IKVM.OpenJDK.Core.dll.
2009-01-17 11:05:10 +00:00
jfrijters
9b0ca3cce3
Include helpful exception message in ClassCastException generated for ghost array casts.
2009-01-06 09:47:59 +00:00
jfrijters
a2082be2f5
Use CallerID instead of stack walking.
2009-01-05 06:30:46 +00:00
jfrijters
b5b83fa2f2
Added critical failure for, what should be, an impossible code path.
2009-01-05 06:30:13 +00:00
jfrijters
ae4aaf150e
Support CallerID in all core class library assemblies.
2009-01-05 06:29:18 +00:00
jfrijters
6c59d613bd
Moved AccessController.doPrivileged() to Java and use CallerID to avoid stack walk.
2009-01-02 10:44:05 +00:00
jfrijters
d987350ae2
Forked java/util/ResourceBundle.java to remove custom stack walking and use CallerID instead.
2009-01-02 08:49:18 +00:00
jfrijters
793d00fea7
Assemblies part of a shared class loader group should be supported by ikvmc as well.
2008-12-24 05:11:48 +00:00
jfrijters
968e7e067c
Updated build to split IKVM.OpenJDK.ClassLibrary.dll into ten parts.
2008-12-23 07:28:20 +00:00
jfrijters
09c0ae966c
Now that InternalsVisibleTo() has a side effect (in ikvmc, it potentially adds an InternalsVisibleToAttribute) swap around the tests, to only call InternalsVisibleTo() if the package names actually match.
2008-12-23 07:12:51 +00:00
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